【发布时间】:2019-03-30 01:56:51
【问题描述】:
我正在处理一个大型数据集。在将元素一个接一个地插入到集合或向量中时,我遇到了以下困惑(在 C++ 中):
- 是不是应该在插入前为向量预留足够的空间,然后一个一个地添加到向量中?
- 或者,我应该将元素一个接一个地插入到一个集合中(因为插入到一个集合中比插入一个向量快),然后立即将那个集合插入到一个向量中?
哪个更省时?
【问题讨论】:
-
没有通用的答案。
std::set和std::vector服务于两个完全不同的目的。一个集合中不能有重复的值,但一个向量中可以有任意多个值。对于两个,std::set是一个有序的关联容器,并对其元素进行排序。std::vector没有。找出满足您需求的最佳解决方案的最佳方法是更多地了解 C++ 库中的各种容器,并了解它们有何不同以及为什么不同。完全有可能集合或向量都不是满足您要求的正确解决方案。