给定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() ;
Run Code Online (Sandbox Code Playgroud)
最后一行依赖于实现吗?
Mik*_*our 10
给定STL容器的所有实例的".end()"迭代器是否指向相同的"过去的"对象?
不,标准不保证这一点,实际上一些容器类型可能不会那样工作.例如std::vector::iterator,通常实现为指向数组元素的指针,end()指向超出数组的末尾.
最后一行依赖于实现吗?
最后一行给出了未定义的行为.您无法比较来自不同集合的迭代器 - 包括过去的迭代器.