STL基礎總結

2022-07-16 17:15:11 字數 1733 閱讀 3975

stl

vector 不定長陣列

宣告:vectora           vectorb      vectorc

a.size()讀取它的大小             a.push_back(x) 向尾部新增x

a.resize(x)改變大小,改為x                a.pop_back() 刪除最後乙個元素

a.cllear() 清空                   a.empty() 測試是否為空

排序  sort(a.begin(),a.end(),cmp);

set 集合(元素不會重複 並且已從小到大排好序)

sets;

s.insert(x) 向集合s插入x

遍歷:迭代器

for(set::iterator it = s.begin();it!=s.end();++it)

cout<<*it找到返回元素位址值

找不到返回.end()值

map 從key到value的對映 關聯陣列

mapm   key為m.first  value為m.second

例:用mapmonth_name來表示「月份名字 到 月份編號」的對映

用month_name[「july」]=7來賦值

map插入方法:

<1>. mapm;

pair::iterator,bool> pair1 ,pair2,pair3;

//1.方法

pair1 = m.insert(pair(1,"teacher01"));

pair2 = m.insert(pair(2,"teacher02"));

pair3 = m.insert(pair(2,"teacher02"));

if (pair2.second)

cout<<"2 teacher02插入成功"cout<<"2 teacher02插入失敗".方法

m.insert(make_pair(3,"teacher03"));

m.insert(make_pair(4,"teacher04"));

//<3>.方法

m.insert(map::value_type(5,"teacher05"));

m.insert(map::value_type(6,"teacher06"));

//<4>. 如果key相等 會修改對應的value

m[7] = "teacher07";

m[8] = "teacher08";

m[0] = "teacher09";

m[0] = "teacher00";

//遍歷

<1>

for (map::iterator it = m.begin();it!=m.end();it++)

cout<<(*it).first

while (!m.empty())

map::iterator it = m.begin();

cout(此處參考自

m.find() 函式

找到返回元素位址值

mapmymap

cout找不到返回mymap.end()值

棧 佇列 優先佇列

棧stacks

push()和pop()實現元素的入棧和出棧操作

top()取棧頂元素(但不刪除)

佇列queueq  

用push()和pop()進行元素的入隊(隊尾)和出隊(隊首)操作

front()取隊首元素(但不刪除)

STL3 Set容器基礎總結

map 容器是鍵 值對的集合,好比人名為鍵的位址和 號碼。相反的,set容器型別只是單純的鍵的集合。當只想知道乙個鍵是否存在時,使用 set容器是最合適的。set不支援下標操作符 而且沒有定義 型別。在 set容器中,value type 不是pair型別,而是與key type 相同的型別。一 s...

STL容器總結

一.種類 值得注意的是,陣列可以和 stl演算法配合,因為指標可以當作陣列的迭代器使用。二.刪除元素 如果想刪除東西,記住 remove 演算法後,要加上 erase 所謂刪除演算法,最終還是要呼叫成員函式去刪除某個元素,但是因為 remove 並不知道它現在作用於哪個容器,所以 remove 演算...

STL用法總結

在c std map上面用迭代器移除元素 序列性容器 vector erase 迭代器不僅使所有指向被刪元素的迭代器失效,而且使被 刪元素之後的所有迭代器失效,所以不能使用 erase iter 的方 式,但是 erase 的返回值為下乙個有效的迭代器,所以 正確方法為 for iter c.beg...