【发布时间】:2015-10-02 00:27:36
【问题描述】:
我需要将向量类型的 66,000 个向量(向量的数量不固定,也可以是 90,000 个向量。为简洁起见,我以 66,000 个向量的示例显示以下代码)到以下向量中:
vector<int> vec;
66,000 个向量中的每一个的大小为 9,000 个元素。我正在使用以下内容来做同样的事情:
vec.reserve(66000*9000);
for(int j=0;j<66000;j++)
for(int i=0;i<9000;i++) //9000 elements in vec1[i] per vector is not fixed
vec.push_back(vec1[i]); //i am pushing i as an example
有什么方法可以提高这段代码的效率吗?
我需要连接太多向量,因此相同的解决方案可能与连接两个向量不同。另外我不能使用上一个问题中提到的多线程
【问题讨论】:
-
如果大小是固定的,为什么不使用数组/
std::array呢? -
@NikolaDimitroff 因为它很大。当然可以动态分配
std::array,但这有什么帮助呢? -
'i'的双重使用是故意的吗?
-
@FooBar 它可以工作,但我同意,这很难读。
-
@NikolaDimitroff 恐怕大小不固定