std :: map :: insert_or_assign与提示的复杂性

时间:2018-05-19 04:09:35

标签: c++ c++17 stdmap

在地图中已存在元素的情况下,提供std::map::insertstd::map::assign的时间复杂度是多少? CPP-Reference表示它与emplace_hint相同,后者表示:

  

“如果在提示之前插入新元素,则分摊常量”

但是:

  1. 如果没有插入新元素怎么办?
  2. 提示应该是lower_bound还是upper_bound

1 个答案:

答案 0 :(得分:0)

如果密钥已经存在,那么它甚至比这更简单,不需要在地图中添加新节点,只需要一个赋值,所以再次,转换为O(1)。单词“就在提示之前”表示提示应略高于映射的键,即upper_bound