繁体   English   中英

为什么 std::map::erase(iterator it) 摊销常量?

[英]Why is std::map::erase(iterator it) amortized constant?

请参阅https://en.cppreference.com/w/cpp/container/map/erase以供参考。

擦除单个迭代器如何能够在摊销的恒定时间内完成? 这似乎意味着红黑树的重新平衡可以在恒定时间内完成。

摊销固定时间并不意味着任何单个操作需要固定时间,而是在许多此类操作中,某些操作的非常量开销摊销到总固定时间。

换句话说,如果您重复使用erase来清除整个地图,则该循环会在元素数量的线性时间内完成,因此每个元素的时间是恒定的。

对于更彻底的分析,cs.stackexchange.com 可能是一个更合适的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM