나는 push_back 벡터의 실행 시간을 테스트하고있는 C++ 코드를 작성했습니다. 나는 벡터의 벡터를 가지고있다. 나는 메인 벡터 인 mainVec과 임베디드 벡터 인 subVec를 호출했다. 그래서, 지원 된 2^20 요소를 subVec으로 밀어 넣고 mainVec에 backVec 2^20 번을 밀어 넣습니다. 그러나, 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에서 올바르게 작동합니까? * Simplify. * – Beta
2^20 int의 2^20 벡터입니까? 4 테라 바이트 이상의 메모리가 있습니까? –
Lol Nevermind 얘들 아. 프로그램을 두 개의 루프로 변경했습니다. 두 번째 것은 2^8까지 올라갑니다. –