0

だから私はこのdequeを持っています

deque <int> a[1001];

そして、使用して要素を追加するだけです

a[i].push_back(val);

そして、それらを使用して消去します

a[i].pop_front();

使用するa[1001]とうまく機能し、使用するa[10001]と数秒かかり、使用するa[100001]とプログラムの実行に30秒ほどかかります。

問題は、すべての場合、5 vals のように push_back するだけで、唯一の違いは両端キューのサイズです。

なぜですか?

前面から要素を消去するだけでよいのですが、より良い方法はありますか? :D

ああ、また、push_backed 要素は何バイトを使用しますか?:D (このタイプの両端キューで)

4

1 に答える 1

3
deque<int> a[1001];

サイズが1001の両端キューではなく、1001の両端キューであり、それぞれを初期化して破棄する必要があるため、速度が低下します。次のような両端キューを作成します。

deque<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(5);
a.push_back(7);
a.pop_back(); // ...
于 2011-01-20T15:01:29.350 に答える