ベクトルがメモリでどのように機能し、実行時に何が起こるかを理解するためだけに、小さな 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
私はこのコードが非常にばかげていることを知っていますが、ベクトルを使用すると実行時間が長いのはなぜですか? それは私の使い方が間違っているからなのか、それとも単に私が理解できないことがあるからなのか?
返信ありがとうございます。