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