【发布时间】:2018-05-19 04:09:34
【问题描述】:
std::map::insert 或std::map::assign 在地图中已经存在元素的情况下提供提示的时间复杂度是多少? CPP-Reference 说它和emplace_hint 一样,它说:
"如果在提示之前插入新元素,则摊销常数"
但是:
- 如果没有插入新元素怎么办?
- 提示应该是
lower_bound还是upper_bound?
【问题讨论】:
-
请注意,只有当您免费获得提示时,使用提示才是胜利,例如插入基本排序的数据。如果您首先搜索提示,那就是
O(log n)本身。 -
在这个特定的用例中,我已经事先进行了
upper_bound搜索其他原因。但我想知道在元素已经存在的情况下,使用该值作为提示是否会提供时间保证。