STL中的map和multimap小結

2022-07-13 10:36:07 字數 2613 閱讀 5784

(1)使用map/multimap之前必須包含標頭檔案:#include並且和所有的關聯式容器一樣,map/multimap通常以平衡二叉樹來完成

(2)namespacestd

第乙個template引數被當作元素的key,第二個當作元素的value。key/value必須具備assignable和copyable性質,對排序而言key必須是comparable。第三個引數為排序準則,和map/multimap一樣這個排序準則必須是strict weak ordering的,元素的次序由他們的key決定,和value無關,map/multimap根據元素的key自動對元素進行排序。

(3)map/multimap的操作函式:

map c      產生乙個空map/multimap

map c(op)      以op為排序準則產生乙個空map/multimap

map c1(c2)      產生某乙個map/multimap的副本

map c(beg, end)      以區間[beg, end)內的元素產生乙個map/multimap

map c(beg, end, op)    以op為排序準則,以區間[beg, end)內的元素產生乙個map/multimap

c.~map()      銷毀所有元素,釋放記憶體

其中map可為下列形式:map、map、multimap、multimap

c.size()      返回當前的元素數量

c.empty()      判斷c是否為空

c.max_size()      返回可容納的元素最大數值

c1 compare c2      compare可為==,!=,<,>,<=和》=

c.count(elem)      返回「鍵值等於key」的元素個數

c.find(elem)      返回「鍵值等於key」的第乙個元素的迭代器,如果找不到就返回end()

c.lower_bound(key)      返回「鍵值為key」之元素的第乙個可安插位置,也就是「鍵值》=key」的第乙個元素位置

c.upper_bound(key)      返回「鍵值為key」之元素的最後乙個可安插位置,也就是「鍵值》key」的第乙個元素位置

c.equal_range(key)      返回「鍵值為key」之元素的第乙個和最後乙個可安插位置,也就是「鍵值==key」的元素區間

lower_bound()、upper_bound()和equal_range()行為與set相應的函式十分相似,唯一不同的是:元素是乙個key/value pair。

c1 = c2      將c2全部元素賦值給c1

c1.swap(c2)      將c1和c2元素互換

c.begin()      返回乙個雙向訪問迭代器(將key視為常數),指向第乙個元素

c.end()      返回乙個雙向訪問迭代器(將key視為常數),指向最後元素的下乙個位置

c.rbegin()      返回乙個逆向迭代器,指向逆向迭代的第乙個元素

c.rend()      返回乙個逆向迭代器,指向逆向迭代的最後元素的下乙個位置

這裡的元素是乙個key/value pair(pair<constkey, t>)。

c.insert(elem)      插入乙個elem副本並返回新元素的位置

c.insert(it, elem)      安插elem副本返回新元素的位置(it是乙個提示指出安插操作的搜尋起點)

c.insert(beg, end)      插入區間[beg, end)內的所有元素副本,無返回值

c.erase(elem)      移除「value與elem相等」的所有元素,返回被移除元素的個數

c.erase(it)      移除it位置上的元素,無返回

c.erase(beg, end)      移除[beg, end)區間內的所有元素,無返回

c.clear()      將容器清空

STL中map和priority queue的應用

基本的知識就不再講了,只列下用map做的題目 題1 poj 1002 487 3279 這個題目煩的死,tle了n次,只是因為我用g 提交的,好啦,要注意的就是把陣列開大點,和用c語言輸入,最後如果沒有重複的 號碼輸出 no duplicates.include include include in...

STL 中 map 的用法

說明 如果你具備一定的 c template知識,即使你沒有接觸過stl,這個文章你也應該可能較輕易的看懂。本人水平有限,不當之處,望大家輔正。一 map概述 map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值 的資料處...

stl中map的使用

map與set類似,都是乙個關聯式容器,但是與set不同的是他鍵值分離的,key,value 結構,在map結構中元素是不允許重複的。在學習的過程中,我們需要主要一些問題 就是在關聯式容器中,當資料很大的時候,使用其中的查詢演算法是很快速的,應該使用其提供的函式來實現查詢函式等等高,會比使用stl中...