Accelerated C++ によると:
この戦略を使用するには、ベクターから要素を削除する方法が必要です。良いニュースは、そのような施設が存在することです。悪いニュースは、ベクトルから要素を削除すると、大量の入力データに対してこのアプローチを使用することに反対するほど遅いことです。処理するデータが非常に大きくなると、パフォーマンスが驚くほど低下します。
たとえば、すべての生徒が失敗した場合、これから表示される関数の実行時間は、生徒数の 2 乗に比例して増加します。つまり、100 人の学生のクラスの場合、プログラムの実行には、1 人の学生の場合の 10,000 倍の時間がかかることになります。問題は、入力レコードが高速ランダム アクセス用に最適化されたベクトルに格納されていることです。その最適化の代償の 1 つは、ベクターの末尾以外の要素を挿入または削除するとコストがかかる可能性があることです。
著者は、ベクトルが 10,000 人以上の学生にとって非常に遅い理由と、ベクトルの途中で要素を追加または削除するのが一般的に遅い理由を説明していません。Stack Overflowの誰かが私に美しい答えを出してくれませんか?