C 10 4 關聯容器 set 型別

2021-07-03 05:50:52 字數 990 閱讀 6653

set容器不提供下標操作符。為了通過鍵從set中獲取元素,可使用find 運算。如果只需要判斷某個元素是否存在,同樣可以使用count 運算,返回set 中該鍵對應的元素個數。對於set 容器,count 的返回值只能是1(元素存在)或0(元素不存在)

set 容器和list 容器的區別

vector

ivec;

for(vector

::size_type i=0;i!=10;i++)

set iset(ivec.begin();ivec.end());

cout

cout

//ivec 裡面有20個元素 0-9 每個元素都出現了兩次。然後用ivec中所有的元素初始化乙個int型的set容器,則這個set容器僅有10個元素:ivec中個不相同的元素。

set

set1;//空的set容器

set1.insert("the");//往set1容器中新增乙個元素

set1.insert("end");//往set1容器中再新增乙個元素,此時,裡面有兩個元素

set

iset2;//空的

iset.insert(ivec.begin(),ivec.end());

iset.find(1);/返回乙個迭代器,指向鍵為1的元素

iset.find(11);/返回乙個迭代器,指向末尾

iset.count(1);//返回1,存在1

iset.count(11);//返回0,不存在11

set

::iterator set_it=iset.find(1);

*set_it =11;//錯誤!!!不能改set裡面的元素值

cout

<<*set_it

關聯容器 set

set容器用來儲存同一資料型別的資料,並且能從乙個資料集合中取出資料,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序,set元素的值不能直接被改變。set容器內部採用一種非常高效平衡檢索二叉樹 紅黑樹 mset.begin 返回set容器的第乙個元素的迭代器 mset.end 返回...

C 關聯式容器(set)詳解

關聯容器與序列容器有著根本性的不同,序列容器的元素是按照在容器中的位置來順序儲存和訪問的,而關聯容器的元素是按關鍵元素來儲存和訪問的。關聯容器支援高效的關鍵字查詢與訪問。兩個主要的關聯容器型別是map與set。概念 set裡面每個元素只存有乙個key,它支援高效的關鍵字查詢操作。set對應數學中的 ...

關聯容器(一) set

set介紹 set是stl中一種標準關聯容器 vector,list,string,deque都是序列容器,而set,multiset,map,multimap是標準關聯容器 它底層使用平衡的搜尋樹 紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和拷貝,所以效率比較高。s...