關於stl中關聯容器的一些基礎東西

2021-10-23 22:45:18 字數 751 閱讀 5339

最近發現自己日常工作中雖然用c++編碼,但是沒咋用stl的東西,所以就開始補充這方面的知識

1. 宣告set容器裝的資料型別時可以順便定義比較函式方法。如:

普通的宣告set容器裝型別的方式:setss

宣告set容器時還定義比較方法(ps:寫比較函式時注意相等比較要返回false):

// 要寫成結構體物件方式,而不是函式方式,因為set模板的引數是型別,而不是位址或函式

struct compare

}setss

2. for_each方法是個好東西。可以呼叫for_each方法對容器的每乙個資料進行傳參的函式呼叫

例如要輸出set容器的每一項,可以這麼玩

void print(int a)

{ cout《由於print是對多種型別適用,所以可以用個模板

templatevoid print(t a)

{ cout<);

3. 容器的插入時的等價定義:兩個值中的任何乙個根據排序函式都不在另外乙個前面,這兩個值就等價,所以不能插入。

!(a.compare(b)) && !(b.compare(a))

eg: a=9, b=10, compare為》

9>10=>false 10>9=>ture 

&&結果是false 所以10可以插入

關於STL中set容器的一些總結

1.關於set www.cppcns.comist等方便的容器,更重要的是stl封裝了許多複雜的資料結構演算法和大量常用資料結構操作。vector封裝陣列,list封裝了鍊錶,map和set封裝了二叉樹等,在封裝這些資料結構的時候,stl按照程式設計師的使用習慣,以成員函式方式提供的常用操作,如 插...

stl一些容器

deque a deque deque n,elem n個elem初始化的deque deque beg,end 雙指標初始化 v.push front 取出第乙個元素 棧,先進後出。通過top 方法返回棧頂元素,push 壓棧,pop 出棧。效率很高,不能遍歷,不支援隨機訪問。q.front q....

關於STL的一些理解

1.集合set。定義 sets1 型別可選。se.begin 返回指向第乙個元素的迭代器 se.clear 清除所有元素 常用 se.count 返回某個值元素的個數 常用,一般用來查這個元素在不在集合中 se.empty 如果集合為空,返回true se.end 返回指向最後乙個元素之後的迭代器,...