You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
766 B
23 lines
766 B
14 years ago
|
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.
|
||
|
|