序列类型

```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 的元素。

    
上一页