ホームページ > バックエンド開発 > C++ > C ベクトルからサブベクトルを効率的に抽出するにはどうすればよいですか?

C ベクトルからサブベクトルを効率的に抽出するにはどうすればよいですか?

DDD
リリース: 2024-12-05 20:50:12
オリジナル
474 人が閲覧しました

How Can I Efficiently Extract a Subvector from a C   Vector?

ベクトルからサブベクトルを効率的に抽出する

ベクトルの一部を抽出して、要素 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート