【发布时间】:2011-07-04 23:41:50
【问题描述】:
实际上,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?
【问题讨论】: