C 中erase函式的用法

2021-09-25 17:50:53 字數 836 閱讀 6661

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...