Итератор «.end()» для всех экземпляров данного контейнера STL указывает на один и тот же объект «мимо конца»?C++: STL использует универсальное значение «end()» для итератора?
например.
std::set<int> my_set_1;
// fill "my_set_1"
std::set<int> my_set_2;
// fill "my_set_2"
bool same_end_iterator = my_set_1.end() == my_set_2.end() ;
Является ли последняя линия зависимой от реализации?
Это правильная концепция для «старых школьных массивов», но не обязательно для контейнеров STL. Хотя это может быть привлекательно для нашей интуиции использовать «сквозную» метафору, нет никаких указаний на то, что это реальность для контейнеров STL (особенно за пределами 'vector'.) – cmo
@CycoMatto: я обратился к общему случаю в моем первое предложение. В контейнере есть один сквозной итератор; реализация может использовать одно и то же значение для всех контейнеров определенного типа, но вы не можете полагаться на это. –