这就是我正在做的事情。
我有一个我实例的类,它有一个std :: vector。
当我第一次实例化这个类时,这个std :: vector是空的。
我使用它的方式是我以指数方式添加并清除。例如:
添加一个数字,清除矢量:
添加2个数字,清除矢量:
添加3个数字,清除矢量
添加4个数字,清除矢量。 ......
std :: vector是我做我正在做的事情的最佳方式吗? 我试图在构造函数中保留(100,000),但这没有帮助。
我的使用可能有更好的容器吗?
由于
答案 0 :(得分:11)
您的算法似乎是二次的。如果你真的需要100,000个元素,那么你需要添加一个元素1 + 2 + 3 + ... + 100,000次。那是大约5,000,000,000次操作。无论你使用的是std::vector
还是手工制作的汇编语言,许多操作,无论它们多么微不足道,都会在标准电脑上花费一段时间。
答案 1 :(得分:2)
类似的东西:
struct A {
std::vector <int> v;
A() : v(100000) {}
};
可能就是你想要的。当你说:
A a;
这将创建一个包含所需大小的矢量的结构A(也适用于类)的实例。