C++のvectorのerase関数は何をするのですか?
C++のvectorのerase関数は、ベクトルから1つ以上の要素を削除するために使用されます。指定された位置の要素または指定された範囲の要素を削除し、ベクトルのサイズを更新します。
1. erase関数には2つの使い方があります。
- 要删除单个元素,需要传递一个指向要删除元素位置的迭代器参数。函数将删除该元素,并返回指向删除元素后的下一个元素的迭代器。
- 複数の要素を削除する際は、削除する要素の範囲を指定するために2つのイテレータパラメータを渡します。この関数は指定された範囲内のすべての要素を削除し、削除された要素の次の要素を指すイテレータを返します。
例えば、次のコードはerase関数の使用例を示しています。
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 删除单个元素
numbers.erase(numbers.begin() + 2); // 删除索引为2的元素
// 删除多个元素
numbers.erase(numbers.begin(), numbers.begin() + 2); // 删除前两个元素
// 输出向量中的元素
for (int num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
出力結果は:
4 5
例では、ベクトルの最初の要素は1、2、3、4、5でした。最初に、erase関数はインデックス2の要素、つまり数字3を削除するために使用されます。次に、erase関数が再度使用され、インデックス0および1の要素、つまり数字1と2が削除されます。最後に、ベクトルには数字4と5のみが残っており、これらの要素が出力されます。