std :: vector很慢?

jma*_*erx 1 c++ performance vector

这就是我正在做的事情.

我有一个我实例的类,它有一个std :: vector.

当我第一次实例化这个类时,这个std :: vector是空的.

我使用它的方式是指数地添加它并清除.例如:

添加一个数字,清除向量:

添加2个数字,清除向量:

添加3个数字,清除矢量,

添加4个数字,清除矢量.......

std :: vector是我做我正在做的事情的最佳方式吗?我试图在构造函数中保留(100,000),但这没有帮助.

我的使用可能有更好的容器吗?

谢谢

Tho*_*mas 11

您的算法似乎是二次的.如果你真的需要100,000个元素,那么你需要添加一个元素1 + 2 + 3 + ... + 100,000次.那是大约5,000,000,000次操作.无论你使用的是std::vector手工制作的汇编语言,无论它们多么微不足道,许多操作都会花费一段时间在标准电脑上.