c++ - 快速可变大小容器 C++

标签 c++ optimization stl

我正在制作国际象棋引擎,但在优化方面遇到了瓶颈。使用分析器后,我发现移动生成是最大的因素。当我仔细观察时,发现大部分时间都花在了我找到一个移动时调用 std::vector.push_back(move) 上。

有没有一种方法可以快速获得动态大小的 C++ 容器?它不能是一个固定大小的数组,因为我无法提前知道将生成多少个移动(尽管通常少于 50 个)。

有没有人遇到过这类问题?如有必要,我会编写自己的容器,但我觉得应该有一种标准的方法来执行此操作。

最佳答案

在以下 push_back() 调用之前调用具有足够大小的 std::vector::reserve() 以避免一次又一次地重新分配内存。

关于c++ - 快速可变大小容器 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21084557/

相关文章:

MySQL 查询优化

c++ - 将唯一 ID 映射到对象的数据结构

c++ - 如何立即在 vector 中插入 vector ?

C++ 逻辑真一元函数

c++ - 解析 ISO 8601 持续时间

c++ - 在 if block 内定义 const "variable"

javascript - jquery 或 js 事件处理程序?

c - ctype.h 中部分函数的优化实现

c++ - 无法在 Linux 上构建 opencv_contrib 模块

C++运算符重载——指针、乘法