我刚刚编写了一个小型 C++ 程序,只是为了了解向量如何与内存一起工作以及在运行时发生了什么。
有我的代码:
#include <iostream>
#include <cstdio>
#include <ctime>
#include <vector>
int main(){
clock_t start, end;
int x;
std::vector<int> a(5, 100);
start = clock();
for(int i = 0 ; i <= 900000000 ; i++){
x = a[0];
x = a[1];
x = a[2];
x = a[3];
x = a[4];
}
end = clock();
clock_t duration = end - start;
double durationPerSec = duration / (double)CLOCKS_PER_SEC;
std::cout << "Run-time : " << durationPerSec << std::endl;
return 0;
}
我得到了这个输出:
运行时间:18.7843
当我通过用动态数组替换向量来编写相同的代码时,运行时持续时间更容易接受:
运行时间:2.9526
我知道这段代码很愚蠢,但我想知道为什么当我使用向量时运行时间这么长?那是因为我以错误的方式使用它还是仅仅因为有些东西我不明白?
感谢回复。