私は2つのことを試してみました:(以下の疑似コード)配列よりもベクトルの初期化が遅い...なぜですか?
int arr[10000];
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
arr[j] = j;
}
}
と
vector<int> arr(10000);
for (int i = 0; i < 10000; i++)
{
for (int j = 0; j < 10000; j++)
{
arr[j] = j;
}
}
私は両方のプログラムを実行し、 "時間" シェルコマンドを使用してタイムアウトしました。プログラム1は5秒で実行され、プログラム2は30秒で実行されます。コンパイラ最適化を有効にして両方のプログラムを実行し、両方のプログラムがほぼ同じ時間(0.38秒)で実行されました。私はこれらの結果に混乱しています。誰かがなぜこれが起こっているのかを私に説明してもらえますか?
ありがとうございます!
これは、最適化*オフ*で5/30秒かかることを意味しますか? – jalf
彼らは全く同じではないことに注意してください。 Vectorはデフォルトでヒープを割り当てますが、配列はスタック上にあります。 – GManNickG
こんにちはjalf、はい、私の質問の一部でした。私はまた、彼らが最適化後に同じ時間にどのように実行されたかによって混乱しました。 – Aishwar