erase函式是乙個刪除容器中元素的函式,包括順序容器和關聯容器。
基本用法如下:
container.erase(p)-----從container中刪除迭代器p指定的元素,p必須指向c中的乙個真實元素,不能等於container.end()
container.erase(b,d)------從container中刪除迭代器對b和d所表示的範圍中的元素,返回d所在下標。
具體用法如下:
vectorpack= ;
pack.erase("c"); //刪除字串「c」
auto it = pack.end()-1; //.end()指向末尾的後乙個元素,因此需要-1,指向末尾元素
pack.erase(it); //刪除末尾元素「e」
auto it1 = pack.begin()+1;
auto it2 = pack.end()-2;
e.erase(it1,it2); //刪除it1到it2之間的元素
對於第二種用法,可以拓展一下:
auto it1 = pack.begin();
auto it2 = pack.find("c"); //it2指向「c」所在位置
auto it3 = pack.erase(it,it2); //刪除it1到it2之間的所有元素,即「a」和「b」,同時返回「c」所在的下標
pack.erase(it3); //此時刪除的是「c」,即先前it2所指,因為第三種用法返回的就是第二個迭代器所指位置
C 函式的用法 erase函式
前面的文章中提到過如何向容器中新增元素,這裡介紹乙個如何刪除容器中元素的函式,包括順序容器和關聯容器。就是這個erase函式,基本用法如下 c.erase p 從c中刪除迭代器p指定的元素,p必須指向c中的乙個真實元素,不能等於c.end c.erase b,e 從c中刪除迭代器對b和e所表示的範圍...
map中的erase成員函式用法
於 一 include include include using namespace std int main void 正確的寫法 for itor m.begin itor m.end else 另乙個正確的寫法,利用erase的返回值,注意,有些版本的stl map沒有返回值,比如sgi版,...
STL中erase 用法陷阱
erase 函式的功能是用來刪除容器中的元素 刪除某個容器裡的某個元素 c.erase t 看似乙個簡單的動作,然而對不同型別的容器,內部卻做了截然不同的事情,後面介紹。假設有這樣乙個題目,將某個容器中所有滿足條件n x的元素刪除,按照常規的思路應該有類似這樣的 假設container和contai...