4
가능한 중복 :
실제로
comparing iterators from different containers벡터 끝 반복자
, std::vector<T>::iterator
아마 그래서 모든 반복자의 고유 한 메모리 주소가 연결되어, 대부분의 STL 구현에 싸여 T*
로 구현됩니다 (반복자가 비어 있지 않은 벡터에서 온다고 가정).
그러나 구현 세부 사항입니다. 모든 벡터 반복자가 어떻게 든 독특하다는 C++ 표준의 실제적인 보증이 있습니까? 특히 비어 있지 않은 벡터의 end()
반복자가 다른 비어 있지 않은 벡터의 반복자 end()
반복자와 같을 수 있습니까? 예를 들어
하나 비어 있지 않은 용기의 단부는 용이하게 다른 비어 있지 않은 용기의 단부 수 없도록
std::vector<int> v1;
std::vector<int> v2;
/* Fill both vectors with values... */
assert(v1.end() != v2.end()); // Does C++ guarantee this assertion will succeed?
모든 'vector'에 대해 (ender) 특별한 값을 가질 수는 있습니다 (그러나 이터레이터는 원시 포인터가 될 수 없기 때문에 불가능합니다).하지만 말한 것처럼 정의되지 않은 동작입니다. –