C では、std::vector を操作するときに、インデックスによる要素の削除が必要な場合。
次のようなシナリオを考えてみましょう。整数のベクトルであり、n 番目の要素を削除する必要があります。
位置 n にある単一の要素を削除するには、単純に std::erase を使用します。目的の位置へのイテレータ。その方法は次のとおりです。
std::vector<int> vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); // Deletes the second element (vec[1]) vec.erase(std::next(vec.begin()));
std::next(vec.begin()) は 2 番目の要素への反復子を返し、その後消去されます。
複数の連続する要素を削除するには、イテレータの範囲で Erase を使用します:
// Deletes the second through third elements (vec[1], vec[2]) vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));
以上がC でインデックスによって std::vector から要素を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。