c++ - std::map 插入顺序和性能

标签 c++ sorting stdmap

如果我想加载相对较大的对文件并使用std::map来存储数据。当我逐一加载每个条目并将其插入到映射中时,插入操作将花费 O(log N)。我想通过对文件中的条目进行排序来改进这一点,以确保当我从文件中逐一加载每个条目时,插入将精确地进行单次迭代。这可以通过在文件中提供正确的条目组织来实现。问题是顺序是什么?假设与 map 排序相同的顺序是正确的吗?我使用标准的字符串比较方法,就像 std::map 默认情况下那样。

最佳答案

是的,如果您有一系列按 value_comp() 顺序排列的对,则可以使用 the 4th overload

template< class InputIt >
map(InputIt first, InputIt last);

如果序列按 value_comp() 顺序排序,则需要花费线性时间。

关于c++ - std::map 插入顺序和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75531144/

相关文章:

c++ - 初始化字符串数组中的值 C++

c++ - 一个类继承自两个类,具有相同的函数原型(prototype),相互冲突

c - 打印排序 float 组时出错

javascript - 循环遍历以数组为值的对象的对象

c++ - 如果键不存在,为什么 std::map operator[] 会创建一个对象?

c++ - 需要帮助在 Makefile 中创建多个目录

c++ - string.c_str() 是常量吗?

c - 对具有大量元素的数组进行排序时发出 SIGSEGV 信号

c++ - 变量没有类类型,即使它已被定义

c++模板化 map ,不同类型参数的通用接口(interface)