【发布时间】:2012-07-24 19:10:20
【问题描述】:
看起来向量是在堆而不是堆栈上分配的。
那么当性能成为一个严重问题时,我是否应该考虑使用数组来替换向量(如果可能)?
【问题讨论】:
-
我认为这不会给您带来任何明显的改善。
-
请参阅此问题stackoverflow.com/q/11648202/819272,了解有关 Howard Hinnant 的 STL 容器堆栈分配器的讨论。与
std::vector一起使用,这将使您的性能接近std::array(例如,在紧密的内部循环中使用时的性能接近10%),但如果堆栈缓冲区已满,它会通过进入堆来保持向量的灵活性。
标签: c++ arrays performance stl vector