Joshua Moerman (@Kassalade)
14 years ago
4 changed files with 33 additions and 2 deletions
@ -1,5 +1,5 @@ |
|||
Here are some (hopefully useful) c++ snippets. |
|||
Here are some (hopefully useful) c++ snippets/libs/helperthingies. |
|||
|
|||
Probably all are header only, with a main.cpp for testing. |
|||
|
|||
Stuff probably needs some C++0x features. |
|||
|
|||
|
@ -0,0 +1,7 @@ |
|||
Usage: |
|||
|
|||
std::cout << make_binary(1337) << make_binary("a c-style array"); |
|||
will output binary representations of shizzle. |
|||
|
|||
Make sure your type is copyable by just copying it's memory-region. |
|||
|
@ -0,0 +1,22 @@ |
|||
counted |
|||
======= |
|||
|
|||
"for(auto x : counted(v)) { ... x.value ... x.index ... }" |
|||
x.value is a reference to the element in the container (so you can change it's value), x.index is what it is. |
|||
Container should have forward iterators. |
|||
|
|||
|
|||
This headers is purely a handy tool for the range-based-for-loops (ie "for(auto x : counter(v))"). Using it explicitly with iterators is not recommended! |
|||
|
|||
|
|||
There is no const version of it. Doing "for(const auto x : counted(v))" doesn't make it impossible to change x (so the element in the container can be modified). |
|||
|
|||
|
|||
Example: |
|||
for(auto x : counted(v)) { |
|||
std::cout << "v[" << x.index << "] = " << x.value << std::endl; |
|||
x.value *= 2; |
|||
} |
|||
|
|||
This will output the container v, with it's indeces. And it will multiply every value in v by 2. |
|||
|
Reference in new issue