我對STL的一些看法(五)初識關聯容器

3關聯容器

pair類型

這個是一個簡單的標準庫類型,該類型在utility頭文件中定義,我們來看看他主要的操作:

pair<T1 ,T2> p1;     創建一個空的pair對象

pair<T1,T2> p1(v1,v2);創建一個pair對象,他的兩個元素分別為T1類型的v1,T2類型的v2

make_pair(v1,v2);    以v1,v2創建一份新的pair對象,相信在map這一塊我們將會見面的

p1<p2,p1==p2

p1.first         返回p中名為first的數據成員

p1,second      返回p中名為second的數據成員

3.1特點

set, multiset, map,multimap 是一種非線性的樹結構,具體的說采用的是一種比較高效的特殊的平衡檢索二叉樹——紅黑樹結構。(至于什么是紅黑樹,可以看看數據結構)

因為關聯容器的這四種容器類都使用同一原理,所以他們核心的算法是一致的,但是它們在應用上又有一些差別,先描述一下它們之間的差別。

set 又稱集合,實際上就是一組元素的集合,但其中所包含的元素的值是唯一的,且是按一定順序排列的,集合中的每個元素被稱作集合中的實例。因為其內部是通過鏈表的方式來組織,所以在插入的時候比vector 快,但在查找和末尾添加上比vector 慢。

multiset 是多重集合,其實現方式和set 是相似的,只是它不要求集合中的元素是唯一的,也就是說集合中的同一個元素可以出現多次。

map 提供一種“鍵- 值”關系的一對一的數據存儲能力。其“鍵”在容器中不可重復,且按一定順序排列(其實我

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444889.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444889.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444889.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關系數據庫——mysql數據類型大總結

整數類型&#xff1a; 實數類型&#xff1a; 定點數&#xff1a;DECIMAL和NUMERIC類型在MySQL中視為相同的類型。它們用于保存必須為確切精度的值。 DECIMAL(M,D)&#xff0c;其中M表示十進制數字總的個數&#xff0c;D表示小數點后面數字的位數。 如果存儲時&#xff0c;整…

學點數學(5)--線性規劃對偶形式的理解

線性規劃對偶問題的理解1.弱對偶2.強對偶曾在上課的時候多次遇到這個求一個問題的對偶形式&#xff0c;大多是硬套公式。記一次&#xff0c;忘一次。后來在蘇大佬的博客中看到了相關闡述&#xff0c;感覺豁然開朗&#xff0c;&#xff08;可以記得就一些了&#xff09;遂做筆記…

關系數據庫——視圖/存儲過程/觸發器

視圖 視圖是虛擬的表&#xff0c;與包含數據的表不同&#xff0c;視圖只包含使用時動態檢索數據的查詢,主要是用于查詢。 為什么使用視圖 重用sql語句簡化復雜的sql操作&#xff0c;在編寫查詢后&#xff0c;可以方便地重用它而不必知道他的基本查詢細節。使用表的組成部分而…

C++(5)--運算符、表達式、條件結構(if, switch)

C運算符、表達式 條件結構1.表達式與運算符1.1賦值運算符1.2算術運算符1.3關系運算符1.4邏輯運算符1.5位運算符1.6 sizeof()1.7 三目運算符1.8 運算符的優先級2.條件結構2.1--if2.2 --switch結構2.3 switch 和 多重if 結構的對比條件結構)《老九學堂C課程》《C primer》學習筆記…

關系數據庫——mysql常用函數總結

文本處理函數 Left(x,len) – 返回串左邊的字符&#xff08;長度為len&#xff09; Right(x,len) Length(x) – 返回串的長度 Locate(x,sub_x) – 找出串的一個子串 SubString(x, from, to) – 返回字串的字符 Lower(x) Upper(x) LTrim(x) RTrim(x) Soundex(x) – 讀…

setsockopt()用法(參數詳細說明)

先來看看函數的原型: int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen); 然后我們來看看參數: s(套接字): 指向一個打開的套接口描述字 level:(級別): 指定選項代碼的類型。

再議libcurl編程

那是2年前用libcurl了,我肯定好久不用的知識,放置久了就會遺忘,現在我又重拾起這個知識點,重頭再來,至于前面的基礎知識,可以參考我的 http://blog.csdn.net/pbymw8iwm/article/details/6675754 假設你要獲取URL所表示的遠程主機上的資源。你需要寫一段程序用來完…

關系數據庫——并發控制

并發控制 多用戶數據庫&#xff1a;允許多個用戶同時使用的數據庫&#xff08;訂票系統&#xff09; 不同的多事務執行方式&#xff1a; 1.串行執行&#xff1a;每個時刻只有一個事務運行&#xff0c;其他事務必須等到這個事務結束后方能運行。 2.交叉并發方式&#xff1a; …

C++(6)--初識循環while,do-while

初識循環1.使用while 循環結構2.使用do-while 循環3.python中的while循環《老九學堂C課程》《C primer》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#xff0c;重復的事情用心做&#xff0c;用心的事情堅持做(老九君…

map類的erase方法的在Linux與Windows中的差異

這次的代碼是跨平臺的,尼瑪在win32上通過,但是在linux上不通過了,查找了一下原來是平臺linux不支持。 有人舉了例子: std::map< int , float > i_f_map; i_f_map[1] = 1.2f; i_f_map[23] = 1.4f;

C++(7)--for循環,break,continue語句

for循環1.for循環2.break 語句3.continue語句4.while,do-while,for 循環的異同5.for循環demo 嵌套循環-打印圖形6.python 中的for循環《老九學堂C課程》《C primer》學習筆記。《老九學堂C課程》詳情請到B站搜索《老九零基礎學編程C入門》-------------簡單的事情重復做&#x…

關系數據庫——數據庫恢復

實現技術 恢復操作的基本原理&#xff1a;冗余 恢復機制涉及的兩個關鍵問題 如何建立冗余數據 數據轉儲&#xff08;backup&#xff09;登錄日志文件&#xff08;logging&#xff09; 如何利用這些冗余數據實施數據庫恢復數據轉儲 數據轉儲定義&#xff1a; 轉儲是指DBA將整個數…

Lua語言中pairs和ipairs的區別

tbl = {"alpha", "beta", ["one"] = "uno", ["two"] = "dos"} for key, value in ipairs(tbl) do print(key, value) end --pairs() --pairs()函數基本和ipairs()函數用法相同, 區別在于pairs()可以遍歷整個table…

算法(22)-leetcode-劍指offer6

leetcode-劍指offer-545.面試題55- 二叉樹的深度46.面試題55-2-平衡二叉樹47.面試題57-1-和為s的兩個數字-雙指針48.面試題57-2-和為s 的連續正數序列-雙指針49.面試題56-數組中出現數字的次數-位運算leetcode-136 只出現一次的數字Ileetcode-137 只出現一次的數字IIleetcode-2…

leetcode160 相交鏈表

編寫一個程序&#xff0c;找到兩個單鏈表相交的起始節點。 如下面的兩個鏈表&#xff1a; 在節點 c1 開始相交。 示例 1&#xff1a; 輸入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 輸出&#xff1a;Reference of the node…

lua的一些api文檔總結吧

打算記錄一些我認為重要的常用的api: 1. 建一個新表 void lua_createtable (lua_State *L, int narr, int nrec) 創建一個新的table, 并把它放在棧頂. narr和nrec分別指定該table的array部分和hash部分的預分配元素數量 無返回值 棧高度+1, 棧頂元素是新table #define l…

關于mysql的一些時間格式和字符的問題

最近在做一些游戲的數據分析&#xff0c;需要對大量數據的用戶行為進行處理存庫&#xff0c;其中有個數據庫字段是datetime類型的&#xff0c;這個以前都沒用過&#xff0c;我以前都喜歡用int來存放時間戳&#xff0c;但這次這樣用&#xff0c;我就得在數據庫中轉換了&#xff…

算法(17)-leetcode-劍指offer1

leetcode-劍指offer-11.面試題3-數組中的重復數字2.面試題04-二維數組中的查找3.面試題05-替換空格4.面試題06-從尾到頭打印鏈表5.面試題07-重建二叉樹6.面試題09-兩個堆棧實現隊列7.面試題10-1-斐波那契數列8.面試題10-2-青蛙跳臺階問題9.面試題11-旋轉數組的最小數字10.面試題…

蟻群算法的一些東西

運行了三個TSP經典用例,基本符合要求。僅僅是一份按照蟻群算法的原理寫的代碼,沒有做任何優化。 // bigSearch.cpp : 定義控制臺應用程序的入口點。 // #include<iostream> #include<math.h> #include<time.h> using namespace std; //該程序是以…

leetcode101 對稱二叉樹

給定一個二叉樹&#xff0c;檢查它是否是鏡像對稱的。 例如&#xff0c;二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的: 1 / \ 2 2 \ \ 3 3 說明: 如果你可以運用遞歸和迭…