c++ - 我应该在插入 STL 集之前随机洗牌吗?

标签 c++ stl set

我需要将 1000 万个字符串插入 C++ STL 集中。字符串已排序。如果按排序顺序插入字符串,会不会出现病态问题?我应该先随机化吗?还是 G++ STL 实现会自动为我重新平衡?

最佳答案

set 实现通常使用红黑树,它会为您重新平衡。但是,如果您在插入之前随机化数据,插入可能会更快(也可能不会)——唯一可以确定的方法是对您的设置实现和特定数据进行测试。无论哪种方式,检索时间都是相同的。

关于c++ - 我应该在插入 STL 集之前随机洗牌吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399646/

相关文章:

c++ - 我如何从 boost::streambuf 读取指针数据但没有复制数据

java - 在 Java 中使用列表来存储用户输入并执行任务

javascript - 如何编写递归函数来获取表示每个值排列集合的数组?

c++ - 对齐指针

c++ - &= 运算符的评估(短路)

c++ - 堆栈最终会溢出吗?

c++ - 何时使用 machine epsilon 何时不使用?

c++ - unordered_map 桶中的所有元素都具有相同的哈希值吗?

C++ 模板实例化 - 与 STL 不同,为什么我的模板实例化必须始终是显式的?

python - 为什么 list(set(a+b)) 返回有序列表?它总是返回一个有序列表吗?