我在 cplusplus.com 上读到,通过传递迭代器作为参数来删除
std::map
中的元素的操作是常数时间。如果我没错(请纠正我),迭代器基本上是指向映射中元素的指针,并且 ++
运算符只返回当前元素的顺序继承者,我想这就是在遍历 std::map
时实现排序结果的方式。现在,如果 map 是一个红黑树,那么使用其地址删除一个元素应该是对数时间操作,我不知道他们如何以常数时间完成(除非有一种高度浪费内存的替代方法)。