C++の中でのvectorのerase関数の使い方はどうですか。
C++のvectorでは、erase関数が使われており、1つまたは複数の要素をvectorから削除します。使い方は2つあります。
- iterator positionにある要素を削除し、削除された要素の次の位置を指すイテレータを返す:例えば、
- vector myVector = {1, 2, 3, 4, 5};
auto it = myVector.erase(myVector.begin() + 2);
// インデックス2の要素、つまり3を削除し、4を指す反復子を返す
// myVectorは {1, 2, 4, 5} になります。 - erase(first, last)関数は、範囲[first, last)内の要素を削除し、削除された要素の後の位置を指すイテレータを返します。例えば、
- vector myVector = {1, 2, 3, 4, 5};
auto it = myVector.erase(myVector.begin() + 1, myVector.begin() + 4);
// 1、2、3番目の要素である2、3、4を削除し、5を指す反復子を返す
// myVectorは {1, 5} になる
erase関数を使用して要素を削除すると、削除された要素の後ろにあるすべての要素が自動的に前に移動するため、イテレータは無効になる可能性があるので、注意して扱う必要があります。