STL中不同容器的刪除操作

2021-08-25 11:35:32 字數 1728 閱讀 4495

/* 說明:

1、對於順序容器,如vector、deque和string等,刪除操作應該用如下形式:

vec.erase(remove(vec.begin(), vec.end(), 5), vec.end());

2、對於list,上述1的方法也可以,但是效率的話,應該使用如下形式:

alist.remove(3);

3、對於關聯容器,如set、multiset、map、multimap等,則應該使用如下形式:

aset.erase(5);

*/

#include 

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

/* 說明:

1、對於順序容器,如vector、deque和string等,刪除操作應該用如下形式:

vec.erase(remove(vec.begin(), vec.end(), 5), vec.end());

2、對於list,上述1的方法也可以,但是效率的話,應該使用如下形式:

alist.remove(3);

3、對於關聯容器,如set、multiset、map、multimap等,則應該使用如下形式:

aset.erase(5);

*/int main() ;

vec.erase(remove(vec.begin(), vec.end(), 2), vec.end());

//string

cout

<< "about string: "

<< endl;

string str = "asdfjklalsdkfjjklasdf";

str.erase(remove(str.begin(), str.end(), 'a'), str.end());

//deque

cout

<< "about deque: "

<< endl;

deque

deq = ;

deq.erase(remove(deq.begin(), deq.end(), 3), deq.end());

//list

cout

<< "about list: "

<< endl;

list

alist = ;

/* alist.erase(remove(alist.begin(), alist.end(), 8), alist.end()); */

alist.remove(8);

for(auto num : alist)

//multiset

cout

<< "about set: "

<< endl;

multiset

mset = ;

mset.erase(1);

for(auto num : mset)

//map

cout

<< "about map: "

<< endl;

map amap = ,,};

amap.erase(2);

for(auto i : amap)

return

0;}

STL學習筆記 不同容器的操作

1,deque類 deque與vector類似,是乙個動態陣列,與vector不同的是它可以在陣列的開頭和結尾插入和刪除資料 include include includeint main d.pop back d.pop front std cout after pop std endl std ...

STL中的容器

一 什麼是stl stl是standart template library,標準模板庫 是hp實驗室開發的一系列軟體的統稱,從根本上說,它是一些容器和演算法的集合,它是世界上很多最聰明的程式設計師多年的傑作 stl是標準化的元件,不用重新開發,可以直接使用,它是c 的一部分,不需要額外安裝 二 s...

STL容器刪除元素的陷阱

今天看scott meyers大師的stl的用法,看到了我前段時間犯的乙個錯誤,發現我寫的 和他提到錯誤 幾乎一模一樣,有關stl容器刪除元素的問題,錯誤的 如下 std vectormfriendlist std vector iterator iter mfriendlist.begin for...