STL中的關聯式容器解析

2021-08-28 07:05:42 字數 2185 閱讀 6072

"  其實真正能擊垮你的,

往往不是那些突如其來的滅頂之災,

而是壓在你心底

那些看似不值一提,日積月累的心事,

在某一瞬間,使你徹底崩潰,成為壓垮你的最後一根稻草。"

這幾天,突然一下子想明白了

隨波逐流不是我的風格,我需要堅持一些東西,需要做一些不一樣的東西,即使是在無限的**裡~

很難,真的很難,

加油!map和set一樣是關聯式容器,它們的底層容器都是紅黑樹,區別就在於map的值不作為鍵,鍵和值是分開的。它的特性如下:

mapm;   

set是一種關聯式容器,其特性如下:

sets;

∴:map和set的共同點在於:都是有序的無重複的key值,而且底層都是基於r-b tree。

說明:pair是乙個結構體型別,裡面的兩個成員變數的型別可以通過模板給定;換句話說,pair是一種k-v資料型別,可以定義此型別的變數

例:mapm;

pairv(string("zhangheng",2));

m.insert(v);

//構造乙個int型別的set

sets;

//插入幾個元素

s.insert(1);

s.insert(2);

s.insert(6);

//測試insert()的返回值

pair::iterator, bool> ret;

ret = s.insert(4);//set中還沒有4這個元素,插入成功,返回插入節點的迭代器和true

ret = s.insert(4);//set中已經存在了4,插入失敗,返回的是元素4的迭代器和false

常用的容器操作:插入、刪除、儲存、遍歷、查詢、排序

c++中的stl之所以牛b,是因為stl封裝了許多複雜的資料結構和演算法,以及大量常用的資料結構操作。vector封裝了資料,list封裝了鍊錶,map和set封裝了二叉樹。

接下來,分別舉例來研究map和set的用法:

mapm;

m["messi"] = 1;

m["jams"] = 2;

m["jack"] = 3;

//插入操作

pairvalue("json", 4);

m.insert(value);

//輸出集合中的元素(遍歷map中的元素)

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

for (i=1;i< int_max && count< index;i++)

}cout << i-1 << endl;

}//遍曆法找醜數

bool isugly(int num)//判斷是否是

while (num %3 == 0)

while (num %5 == 0)

if (num == 1)

return true;

else

return false;//not an ugly number

}};*/

//法二:建議此種方法,所有的醜數都是有現有醜數乘以2,3,5得到的

class solution

vectorv(index);

v[0]=1;

vector::iterator it2=v.begin();

vector::iterator it3=v.begin();

vector::iterator it5=v.begin();

int count=1;

while(counts;

set::iterator it;

s.insert(1);

for (i=1 ; i> number ;

solution so;

int result=so.getuglynumber_solution(number);

cout好嘞!

STL之關聯式容器

sets 沒有重疊的數字,沒有權利指定新元素的位置 set typedef std set obj obj col col.insert 3 col.insert 1 col.insert 5 col.insert 4 col.insert 1 col.insert 6 col.insert 2 f...

STL關聯式容器(二)

前面我們總結了map的用法,具體參考如下 stl關聯式容器 一 接下來我們看看multimap multimap是關聯式容器,它按照特定的順序,儲存由key和value對映成的鍵值對,其中多個鍵值對之間的key是可以重複的。multimap在底層用二叉搜尋樹 紅黑樹 來實現。multimap和map...

STL之關聯式容器

在接觸容器初,我們學習了stl中的部分容器,如 vector,list,deque 等,這些容器統一稱為序列式容器。因為其底層為線性序列的的資料結構,裡面儲存的是元素本身。關聯式容器就有所不同 關聯式容器也是用來儲存與序列式容器不同的是,裡面儲存的是結構的鍵值對,在資料檢索時比序列式容器效率更高。用...