1. 程式人生 > >C++裡vector::erase函式

C++裡vector::erase函式

vector::erase():從指定容器刪除指定位置的元素或某段範圍內的元素
vector::erase()方法有兩種過載形式
如下:
iterator erase(   iterator _Where);
iterator erase(   iterator _First,   iterator _Last);
如果是刪除指定位置的元素時:
返回值是一個迭代器,指向刪除元素下一個元素;
如果是刪除某範圍內的元素時:返回值也表示一個迭代器,指向最後一個刪除元素的下一個元素; 例子: #include <iostream>        #include <vector>
usingnamespace std; intmain(void) { vector<int>array; 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<int>::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<<""; } return0; } 輸出結果: 100 300 300 500        在本題中,當 *itor==300成立時,刪除第一個值為300的元素,同時itor指向下一個元素(即是第二個值為300的元素), 在for(;;itor++)執行itor,itor指向第三個值為300的元素,進入下一個迴圈        進入迴圈滿足*itor==300,重複上面的過程,執行完迴圈,itor執行值為500的元素。        所有整個過程中,只刪除了2個值為300的元素。