我寫了一個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。 –