c++ - push_back 的更快替代方案(大小已知)

标签 c++ performance vector push-back

我有一个浮点 vector 。当我处理某些数据时,我将其推回。在声明 vector 时我总是知道大小是多少。

对于最大的情况,它是 172,490,752 个 float 。 push_back 一切都需要大约 11 秒。

是否有更快的替代方案,例如不同的数据结构或其他?

最佳答案

如果你知道最终大小,那么 reserve()声明 vector 后的那个大小。这样它只需分配一次内存。

此外,您可以尝试使用 emplace_back()尽管我怀疑它会对 float 的 vector 产生任何影响。但是请尝试并对其进行基准测试(当然是使用优化的构建 - 您正在使用优化的构建 - 对吗?)。

关于c++ - push_back 的更快替代方案(大小已知),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44934038/

相关文章:

c++ - 如何在 Windows 上使用 Eclipse 构建 wxWidgets

c++ - clock_nanosleep - 请求和保留的相同指针?

javascript - 只更新可见的 DOM 元素?

mysql - 如何找出导致应用程序变慢的原因?

c++ - erase-remove_if 习语 - 有什么东西被删除了吗?

c++ - 转换为唯一基类指针的 vector

java - 策略模式或函数指针

c++ - 尝试集成外部源代码时出现编译错误

c# - linq 的优化或替代(用于聚合)C#

c++ - 错误 'no match for call to vector<int> normal_iterator<int*, vector<int>>::difference_type)'