Итератор следующий за последним

189
13 апреля 2018, 17:01

Известно что метод end() возвращает итератор следующий за последним, как может быть за последнем итератором еще один итератор ведь последний итератор последний.

Answer 1

Представьте массив, скажем,

int a[5];

Вот этот end() - это указатель на элемент, следующий за последним - на a[5]. Реально его нет, вы не имеете права к нему обращаться...

Но можете использовать его для ограничений цикла - типа

for(int* i = a; i != a+5; ++i) ...

И не более того. Но обращаться с помощью такого итератора к элементу нельзя!

Answer 2

В футболе это место за линией. Когда мяч пересекает линию, игра должна возобновляться с новыми условиями. В символьных массивах это символ '\0', ну и т.д... X.end(), Это итератор обьекта Х, имеющий адрес места сразу за пределом обьекта, чтобы было легче выражаться, что "поле закончилось".

READ ALSO
Вывод string массива в фаил с <name.type>

Вывод string массива в фаил с <name.type>

Необходимо создать файл с названием filename (Пользователь вводит сам) и расширение у него должно быть всегдаahk 1

218
Сортировка выбором, не работает код, в чем причина

Сортировка выбором, не работает код, в чем причина

Есть одномерный массив, который сортирую методом выбора, необходимо пользователю показывать каждую итерацию (чтобы он видел изменения в массиве),...

212
Как перехватить исключение

Как перехватить исключение

Почему данный код не ловит исключение?

243