最近發現自己日常工作中雖然用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 返回指向最後乙個元素之後的迭代器,...