`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).