簡體   English   中英

僅通過迭代器刪除STL容器元素

[英]Deleting STL-container element via iterator only

有沒有一種方法可以僅通過指向要刪除元素的迭代器從STL容器中刪除元素(它為listvector ,...),但提供其駐留的容器對象(即不直接使用容器成員函數container<T>::iterator container<T>.erase(container<T>::iterator)嗎?

此問題的跟進)

不,這是不可能的。

想象一下,為了使標准提供一種執行此操作的標准,將會發生什么。 std::vector<T>::iterator不能是簡單的T* 相反,它必須包含足夠的信息以使庫能夠“查找”它所屬的向量,例如指向向量本身的指針。 因此,如果標准強加了僅允許刪除迭代器就可以刪除元素的要求,那么它將迫使標准庫增加開銷,從而減慢容器的所有用戶的工作。

暫無
暫無

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

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