回答
不可以。迭代器的全部要點是它們是任何容器的獨立獨立。如果沒有其他人仍然有任何迭代器或對容器元素的引用(取決於容器的迭代器/引用失效規範),則由您決定是否只變更容器。
我的問題的重點在於迭代器的狀態隱含地依賴於它們的容器。 QT庫通過在迭代器存活時複製容器(克隆)來部分解決此問題。但它並不是無處不在。 – 2012-02-29 20:13:25
@DmitryKachko:好的,我應該限制我的答案STL風格的迭代器。它看起來像Java迭代器確實攜帶一些容器的連接。無論如何,您必須檢查* container *的文檔 - 我認爲容器不會跟蹤所有迭代器,並在它們失效時發出信號。 – 2012-02-29 20:20:27
好的,但它可以有方法來檢查有效性,例如。奇怪的是,這樣的方法不存在,但我問的可能是有一些技巧來引發異常或什麼。 – 2012-02-29 20:55:18
- 1. 如何檢查迭代器指定的範圍是否有效?
- 2. 迭代器是否失效?
- 3. 如何檢查對象是否是Python中的迭代器?
- 4. 按值傳遞容器是否使迭代器無效?
- 5. 如何檢查一個迭代器是否實際上是一個迭代器容器?
- 6. 檢查迭代器
- 7. 檢查CSS選擇器是否有效
- 8. 是否有效比較分別從容器獲取的迭代器?
- 9. 如果迭代器在STL容器中失效,指針是否失效
- 10. 有效的或無效的迭代器和迭代器位置
- 11. 迭代對於容器C++
- 12. 迭代器的有效性
- 13. 分享迭代器是否可迭代?
- 14. 檢查是否是DJANGO對象有效
- 15. 增加可變輸入迭代器是否使舊迭代器值失效?
- 16. 如何檢查代表是否有效?
- 17. 通過迭代器檢查某些內容是否已更改的方法
- 18. 通過迭代器而不是容器
- 19. 是標準容器的迭代器DefaultConstructible?
- 20. hash_map.erase是否使所有迭代器失效?
- 21. 檢查迭代器的類型是否爲reverse_iterator
- 22. Silverstripe迭代器檢查行是否已滿
- 23. 如何檢查迭代器是否指向存在
- 24. 檢查對象是否有效?
- 25. C++迭代器是否持有對基礎對象的引用?
- 26. 是否有可能使用boost foreach迭代多個容器?
- 27. 如何檢查迭代器是否在沒有容器的情況下碰到末端?
- 28. 當沒有特定的容器時檢查迭代器是否未分配給項目
- 29. 迭代器和STL容器
- 30. C++容器的迭代器
否............. – 2012-02-29 19:27:49
......發生了什麼? – 2012-02-29 19:39:05
通過另一個線程更改容器後。我知道我可以爲此製作外部標誌,但我猜測我們是否可以使用封裝功能。 – 2012-02-29 19:47:16