c++ - std::map 和摊销 O(log N) 的操作
问题描述
我有一个任务,我必须为在 std::map 之上实现的数据结构实现插入成员函数。该成员函数有 3 个参数:firstKey、secondKey、valToInsert。
分配指定不进行超过 2 次摊销 O(log N) 的操作,与 O(1) 形成对比,其中 N 是 map 中的元素数。
我编写了代码,它可以按应有的方式编译和工作。不过,我不确定这两个操作。
我无法展示整个代码(因为它是作业的一部分),所以我只会列出我使用的地图的成员函数。他们是:
- 一
auto firtstIt = map.lower_bound(firstKey);
- 一
auto secondtIt = map.lower_bound(secondKey);
- 一
map.insert(secondIt, {secondKey, valToInsert});
- 一
map.insert_or_assign(firstIt, firstKey, valToInsert);
- 一
map.erase(std::next(firstKey), secondKey);
- 几个
map.erase(it);
“几个”取决于 firstIt 和 secondIt 之间的距离
我是否满足任务规定的条件?如果不是,为什么?
解决方案
推荐阅读
- jquery - 如何创建单选按钮动态分配用户输入的值?
- python-3.x - 无法在 jupyter notebook 中为谷歌云实例导入熊猫
- c# - 从 Asp.net Web Api 控制器获取文件名
- ruby-on-rails - lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require': 无法加载此类文件 -- sass (LoadError)
- reactjs - 如何使用 yup 和 moment.js 验证最小年龄?
- python - 通过将元素发送到末尾来在 Python 中对数组进行排序的最小计数
- r - INNER JOIN 返回不需要的匹配,SEMI JOIN 返回预期的输出,但缺少列
- mysql - 连接节点js
- windows - 是否可以确定 IE 是否从 C# 或 powershell 代码重新下载 Silverlight xaps?
- wordpress - 从 wordpress url 中删除自定义帖子类型 slug 并保留分类术语