C では、STL のベクトル クラスを使用して、ベクトルの一部を新しいベクトルとして抽出できます。
最も簡単なアプローチには、目的の反復子を作成することが含まれます。元のベクトル内の範囲を取得し、それらを引数として新しいベクトルのコンストラクターに渡します。例:
vector<T>::const_iterator first = myVec.begin() + 100000; vector<T>::const_iterator last = myVec.begin() + 101000; vector<T> newVec(first, last);
これは、インデックス 100000 から 100999 の要素を新しいベクトル newVec にコピーし、サイズ 1000 のベクトルになります。
ただし、この方法は最も効率的ではありません。既存のベクトルの一部から新しいベクトルを作成するには、要素のコピーを作成する必要があります。ベクトルが大きい場合、これには時間がかかる可能性があります。
パフォーマンスが重要なアプリケーションの場合は、std::span や std::array などの代替データ構造を検討できます。これらは、コピーを必要とせずに部分範囲のビューを作成するためのより効率的な方法を提供します。
以上がC でサブベクトルを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。