ホームページ > バックエンド開発 > C++ > C std::vector からインデックスによって要素を消去するにはどうすればよいですか?

C std::vector からインデックスによって要素を消去するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-14 04:22:09
オリジナル
896 人が閲覧しました

How to Erase Elements from a C   std::vector by Index?

インデックスによる 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 サイトの他の関連記事を参照してください。

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