这个问答内容涉及到了C++标准库中的容器(container)的erase()函数。erase()函数用于从容器中删除元素,而container.erase(first, last)则表示删除一个范围内的元素,其中first是要删除元素的起始位置,last是要删除元素的结束位置。
当first == last时,表示要删除的元素只有一个,即只删除first所指向的元素。
在STL容器中,常见的有vector、list、deque等,它们都支持erase()函数。使用erase()函数时,需要注意容器的迭代器会失效,如果需要继续使用迭代器,需要重新定位。
以下是一个简单的示例代码,演示了如何使用erase()函数删除vector中的元素:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
vector<int>::iterator it = v.begin() + 1; // 指向2
v.erase(it);
for (int i : v) {
cout << i << " ";
}
cout<< endl; // 输出:1 3 4 5
return 0;
}
在这个示例中,我们定义了一个vector,并使用erase()函数删除了其中的一个元素。可以看到,删除后vector中的元素已经被正确删除,而且迭代器也已经失效,需要重新定位。
领取专属 10元无门槛券
手把手带您无忧上云