/* 說明:
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...