簡體   English   中英

通過C ++ 11中的const迭代器進行破壞

[英]Destruction via const iterators in C++11

http://en.cppreference.com/w/cpp/container/vector/erase為例。 為什么簽名從使用非const迭代器變為const-iterators,因為操作確實通過提供的迭代器修改了容器?

我認為這是非const迭代器的定義。 改變背后的原因是什么?

如果您已經擁有對容器的非const訪問權限( erase是非const成員函數),則只能執行erase

鑒於此,您可能已經將const_iterator轉換為iterator (可能使用distanceadvance效率低下),因此您無法獲得任何額外的訪問權限。

作為const的迭代器意味着迭代器指向的元素不能通過該迭代器進行修改。 這並不意味着容器本身不能使用迭代器的信息修改這些內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM