6
A
回答
11
是的,只要这两个迭代器都没有失效。
例如,下面的就不会是有效的:
std::deque<int> d;
std::deque<int> begin1 = d.begin();
d.push_front(42); // invalidates begin1!
std::deque<int> begin2 = d.begin();
assert(begin1 == begin2); // wrong; you can't use begin1 anymore.
4
是,begin()
将返回给一个容器实例相同的迭代器,除非你以某种方式改变容器(end()
拥有此属性以及)。例如,std::vector::push_back()
可能会导致数组重新分配以适应新的元素。
相关问题
- 1. 输入迭代器的等效比较
- 2. 检查迭代器是否对QT容器有效
- 3. 迭代器是否失效?
- 4. 比较迭代器,C++
- 5. 比较两端()迭代器
- 6. boost-mpl比较迭代器
- 7. 向量迭代器比较
- 8. 模板比较迭代器
- 9. 分享迭代器是否可迭代?
- 10. 按值传递容器是否使迭代器无效?
- 11. C++:unordered_map,不可比较的迭代器
- 12. 比较C++中的迭代器
- 13. 迭代器的有效性
- 14. 如果迭代器在STL容器中失效,指针是否失效
- 15. C++ STL关联容器:从元素获取迭代器?
- 16. STL容器迭代器和C指针迭代器有什么区别
- 17. 迭代器和const_iterator之间的比较效率低下吗?
- 18. 是否可以从任意迭代器(C++)获取值类型?
- 19. 如何比较单元测试中的迭代器内容?
- 20. 试图比较两个迭代器的内容,怎么样?
- 21. 迭代器协议与发生器vs迭代器在swift中的比较
- 22. 比较列表迭代器O(n)?
- 23. 从比较编辑器获取文档
- 24. 是否可以从kubernetes容器中获取容器名称?
- 25. C++容器的迭代器
- 26. 获取迭代器引用的指向STL容器的指针?
- 27. C++在标准库中是否有用于比较迭代器类别的工具
- 28. 增加可变输入迭代器是否使旧迭代器值失效?
- 29. 从迭代器获取关键值
- 30. 从指针获取迭代器
要当心使用期限'same'。我不认为所有的容器都会为同一个项目返回相同的迭代器。虽然他们会比较与==相比。 – 2010-07-21 04:59:14
你说得对,我已经改写了我的答案。 – 2010-07-21 05:01:57
Martin York的评论仍然成立:每次调用'begin()'都会返回一个不同的迭代器,即使它们比较相同。目前这是挑剔的,但迭代器不会一样。 '&c.begin()!=&c.begin()'即使'c.begin()== c.begin()'(假设单线程上下文)。 – 2010-07-21 07:28:01