【发布时间】:2013-03-14 06:00:04
【问题描述】:
我在cplusplus.com 上读到,通过将迭代器作为参数传递来删除std::map 中的元素的操作是常数时间。
如果我没有错(如果我错了,请纠正我)迭代器基本上是指向映射中元素的指针,++ 运算符只是返回当前元素的有序后继我猜这就是排序的方式结果是在遍历std::map 时实现的。
现在如果地图是一棵红黑树,那么删除一个元素(使用它的地址)不应该是对数时间操作吗,我想知道他们如何在恒定时间内做到这一点(除非有一个高度浪费内存的替代方案这样做)。
【问题讨论】:
标签: c++ algorithm data-structures stl red-black-tree