序列类型

```c++

include

include

using namespace std; int main(void) { vectorarray; array.push_back(100); array.push_back(300); array.push_back(300); array.push_back(300); array.push_back(300); array.push_back(500); vector::iterator itor; for(itor=array.begin();itor!=array.end();itor++) { if(itor==300) { itor=array.erase(itor); } } for(itor=array.begin();itor!=array.end();itor++) { cout<<itor<<""; } return 0; }

```

最终输出值为 100 300 300 500。 vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase( iterator _Where); iterator erase( iterator _First, iterator _Last); 如果是删除指定位置的元素时: 返回值是一个迭代器,指向删除元素下一个元素;

如果是删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;

在本题中,当itor==300 成立时,删除第一个值为 300 的元素,同时 itor 指向下一个元素(即是第二个值为 300 的元素), 在 for(;;itor++)执行 itor,itor 指向第三个值为 300 的元素,进入下一个循环 进入循环满足itor==300,重复上面的过程,执行完循环,itor 执行值为 500 的元素。 所有整个过程中,只删除了 2 个值为 300 的元素。