Конструктор копирования vector
не просто копирует указатель во внутреннее хранилище вектора;он создает копию содержимого другого вектора.(Если бы он просто скопировал указатель, то изменения, внесенные в один вектор, будут отражены в другом векторе, и, как вы знаете, класс vector
ведет себя не так.)
Более того, нет никаких гарантийчто есть что-то особенное, отмечающее конец внутреннего хранилища вектора.(И внутреннее хранилище не обязательно является массивом.) Чтобы определить конец вектора, используйте функцию size
, чтобы помочь определить максимально допустимый индекс для вектора, или сравните итератор с возвращаемым end
итератором.,Не ищите дозорного значения, если вы сами его не поместите, или в документации к вашей библиотеке не указано, что оно будет.