我写了一个C++代码,我在测试向量push_back的运行时间。我有一个矢量矢量。我打电话给我的主矢量mainVec和嵌入矢量subVec。所以,我推送2^20元素到subVec中,然后将支持的subVec 2^20次推入mainVec。但是,在subVec-push_back的循环中,我有一个不能执行的cout命令。我希望你能指出我的错误。C++:向量问题向量
下面是代码(没有错误代码,虽然):
vector<int> subVec;
vector< vector<int> > mainVec;
//Fills the subvector with 2^20 elements
for(size_t i = 0; i < (pow(2,20)+1); ++i) subVec.push_back(i);
//Filling of the maiVec with 2^20 subVec
for(size_t j = 10; j < 21; ++j) {
cout << pow(2,j) << endl;
clock_t t1 = clock();
//2^j times subVec is push_backed for j < 21
for(size_t k = 0; k < pow(2,j); ++k) mainVec.push_back(subVec);
t1 = clock()-t1;
//Outputting to file
cout << "\t" << (float(t1)/CLOCKS_PER_SEC) << endl;
//ofs << pow(2,j) << "\t\t" << (float(t1)/CLOCKS_PER_SEC) << endl;
}
为什么2^20? 'cout'对2^20-1是否正常工作? *简化。* – Beta
2^20整数的2^20个向量?你有超过4太字节的内存? –
哈哈没关系的人。我改变了我的程序只有两个循环。第二个上升到2^8。 –