ベクトルからサブベクトルを効率的に抽出する
ベクトルの一部を抽出して、要素 X ~ からなる新しいベクトルを作成するとします。 Y. C で標準ライブラリ ベクトルを使用する場合、最も簡単なアプローチは次のとおりです。 iterators:
vector<T>::const_iterator first = myVec.begin() + X; vector<T>::const_iterator last = myVec.begin() + Y + 1; vector<T> newVec(first, last);
この演算の時間計算量は O(N) です。ここで、N は元のベクトルのサイズです。ただし、ベクトルを使用してこれを実現するより効率的な方法はないことに注意することが重要です。
代替 STL データ型
サブベクトルを抽出する必要がある場合より効率的なサブベクトル抽出をサポートする代替 STL コンテナの使用を頻繁に検討してください。オプションの 1 つは両端キューです。これにより、両端の要素の効率的な挿入と削除が可能になります:
deque<T> myDeque; deque<T> subDeque(myDeque.begin() + X, myDeque.begin() + Y + 1);
以上がC ベクトルからサブベクトルを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。