Код: Выделить всё
// Example program
#include
#include
#include
using namespace std;
int main()
{
vector v {1,2,3};
vector ::iterator v_i1 = v.begin();
vector ::iterator &v_i2 = v.begin(); // error out - initial value of reference to non-const must be an lvalue
}
- v.begin() вернет итератор, который на самом деле является объектом.
- v_i1 переменная инициализируется с помощью итератора, возвращаемого функцией Begin(). Нет проблем
- Если Begin() возвращает итератор (объект здесь??), почему его нельзя присвоить ссылке v_i2? Это потому, что метод Begin() возвращает значение r?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ence-itera