(1)使用map/multimap之前必須包含標頭檔案:#include並且和所有的關聯式容器一樣,map/multimap通常以平衡二叉樹來完成
(2)
namespace
std
第乙個
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<
const
key, 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中...