簡體   English   中英

std::map 擦除保留迭代器

[英]std::map erase preserving iterators

我正在使用基本的二叉搜索樹實現我自己的 std::map。

擦除方法應該是

使引用元素的迭代器無效並保留所有其他迭代器的有效性

然而,這就是 BST“經典”刪除算法正在做的事情:

如果要刪除的節點 A 有兩個子節點,則將 A 替換為其按順序的后繼/前任 B 和刪除 B。

最后,B 的迭代器無效。 所以“其他”迭代器的有效性不會被保留。

我發現的算法不合適嗎?

我發現的算法不合適嗎?

正確的。 您描述的算法不適合實現std::map

暫無
暫無

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

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