Joshua Moerman
9381a492f3
|
13 years ago | |
---|---|---|
.. | ||
README.md | 13 years ago | |
counting_iterator.hpp | 13 years ago | |
main.cpp | 13 years ago | |
tuple_element.hpp | 13 years ago |
README.md
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.
tuple element
map<.., ..> m = {..};
for(auto key : keys(m))
... key ...
for(auto v : values(m))
... v ...
Some helper functions for easy access to maps. It also works well on vectors of tuples, or any container with a tuple-like interface.
The general function is nth_values<N>(v)
, which allows you to iterate over the N-th element in the tuples of v
.
For more information see tuple_element.h. Note that this does have a good const version, in contrast to the thing above (counted).