1
A
回答
3
對於std::list:
在插入,
所有迭代器和引用不受影響[23.2.2.3/1]
在箱子情況下擦除,
只有迭代器和對擦除元素的引用無效[23.2.2.3/3]
所以,只要你擦除一個元素並且不使用它存儲的迭代器,它就是安全的。
+1
ljh131在問題中提到了迭代器指針。你應該提到需要存儲迭代器值的副本。 –
相關問題
- 1. stl ::與原始指針的迭代器
- 2. stl列表對象指針的迭代器
- 3. C++ STL:列表指針 - 迭代器無法訪問?
- 4. 指向STL容器線程安全的指針(隊列/ Deque)
- 5. C++ STL列表迭代器
- 6. STL,列表,迭代器
- 7. 是一個指向STL容器安全的指針嗎?
- 8. 在聯合中存儲STL迭代器是否合法?
- 9. 獲取迭代器引用的指向STL容器的指針?
- 10. 如果迭代器在STL容器中失效,指針是否失效
- 11. C++ STL常量迭代和const指針
- 12. 將指針存儲在std :: set中是否安全?
- 13. 指針代表在STL集
- 14. STL庫故障的列表迭代器
- 15. STL容器迭代器和C指針迭代器有什麼區別
- 16. 使用迭代器和類的指針的STL映射
- 17. 可以使用原始指針代替具有線性存儲容器的STL算法的迭代器嗎?
- 18. STL列表迭代問題
- 19. 在STL列表中迭代
- 20. 比較C++ STL列表迭代器
- 21. 在stl集中存儲更改對象是否安全?
- 22. 是否將一個本地變量存儲在類安全的STL容器中?
- 23. 將指針迭代到C中下一個數據塊是否安全?
- 24. 指針轉換爲逆矢量迭代器在STL
- 25. 傳遞列表列表迭代器作爲指針C++
- 26. dynamic_casting後刪除指針是否安全?
- 27. 迭代同步包裝是否安全?
- 28. 是安全的在指針
- 29. 轉換指針迭代器
- 30. 迭代器載體指針
'std :: list'不公開任何迭代器引用。一些示例代碼可以更容易理解你的意思。 –
好吧,我明白了。 begin()或其他方法返回迭代器的副本,而不是迭代器的引用。所以這是不可能的,因爲存儲指向局部變量的指針是不安全的。我對嗎? – ljh131
@ ljh131如果讓指針的活期比創建本地變量的堆棧幀長,則將指針存儲到本地變量是不安全的。如果在變量退出它的作用域之前停止使用指針,那麼你沒問題(並不是說這在大多數情況下特別有用)。 –