インデックスによる std::vector からの要素の消去
C では、 std::vector は連続したメモリに要素を効率的に格納するコンテナです。場所。ベクターから要素を削除するには、erase 関数を使用します。
問題: std::vector を指定すると、特定の位置にある要素を削除します。 Index.
例:
std::vector<int> vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); vec.erase(???); // How to delete the second element?
解決策:
インデックスによって単一の要素を消去するには、std を使用します。 :next は、ベクトル反復子を目的の値だけインクリメントします。 Index:
vec.erase(std::next(vec.begin(), elementIndex));
要素の範囲を消去するには、開始反復子と終了反復子を指定します:
int startIndex = 1; int endIndex = 3; vec.erase(std::next(vec.begin(), startIndex), std::next(vec.begin(), endIndex));
提供された例では、次のコードは 2 番目の要素 (vec[ 1]):
vec.erase(std::next(vec.begin()));
2 番目と 3 番目の要素を削除するには、次を使用します:
vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));
以上がC std::vector からインデックスによって要素を消去するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。