1. ホーム
  2. c++

[解決済み】ベクトルからサブベクトルを抽出する最適な方法とは?

2022-02-07 20:31:28

質問

があるとします。 std::vector (仮に myVec ) のサイズ N . 0 <= X <= Y <= N-1 の要素 X から Y までのコピーからなる新しいベクトルを構成する最も簡単な方法は何でしょうか? 例えば myVec [100000] を通して myVec [100999] の大きさのベクトルで 150000 .

もしこれをvectorで効率的に行うことができない場合、代わりに使用すべき他のSTLデータ型はありますか?

どのように解決するのですか?

vector<T>::const_iterator first = myVec.begin() + 100000;
vector<T>::const_iterator last = myVec.begin() + 101000;
vector<T> newVec(first, last);

新しいベクトルを構成するのはO(N)演算ですが、これ以上の方法はないでしょう。