I\'m new to C++, and I\'m confused about this:
vector v = { 1,2 };
const int &r1 = v[0];
//r1 = v[1]; // compiler will show error.
The ranged-based for
looks like this:
attr(optional) for ( range_declaration : range_expression ) loop_statement
where range_declaration is
range_declaration - a declaration of a named variable, whose type is the type of the element of the sequence represented by range_expression, or a reference to that type. Often uses the auto specifier for automatic type deduction
So each iteration a new declaration is introduced, the reference only exists until the next loop iteration.