map c //預設建構函式;建立乙個空map/multimap
map c(op) //建立乙個空map/multimap,並以op原則作為排序準則
map c(c2) //複製建構函式;建立乙個新的map/multimap
//作為c2的副本(所有元素都被複製)
map c = c2 //複製建構函式;建立乙個新的map
//作為c2的副本(所有元素都被複製)
map c(rv) //移動建構函式;使用右值物件rv建立乙個新map/multimap
map c = rv //移動建構函式;使用右值物件rv建立乙個新map/multimap
map c(beg,end) //建立乙個map/multimap,並使用
//beg到end範圍內的值進行初始化
map c(beg,end,op) //建立乙個map/multimap,
//並使用beg到end範圍內以op原則排序後的值進行初始化
map c(initlist)
//建立乙個map/multimap,並使用初始化列表進行初始化
map c = initlist
//建立乙個map/multimap,並使用初始化列表進行初始化
c.~map() //銷毀所有元素並釋放記憶體
map
//以less<>為排序準則的map
map//以op為排序準則的map
multimap
//以less<>為排序準則的multimap
multimap
//以op為排序準則的multimap
c.key_comp() //返回比較準則
c.value_comp() //返回對值比較的標準 (與key_comp()相同)
c.empty() //判斷容器是否為空,與size()==0相同,但可能更快
c.size() //返回當前元素數量
c.max_size() //返回可容納的元素最大數量
c1 == c2 //判斷c1與c2是否相等
c1 != c2 //判斷c1與c2是否不相等,等同於!(c1==c2)
c1 < c2 //判斷c1是否小於c2
c1 > c2 //判斷c1是否大於c2
c1 <= c2 //判斷c1是否小於等於c2
c1 >= c2 //判斷c1是否大於等於c2
c.count(key) //返回鍵值為key的元素個數
c.find(key) //返回第乙個鍵值為key的位置,若沒找到返回end()
c.lower_bound(key) //返回鍵值為key的第乙個可插入的
//位置,也就是鍵值 >= key的第乙個元素位置
c.upper_bound(key) //返回鍵值為key的最後乙個可插入的位置,
//也就是鍵值 > key的第乙個元素位置
c.equal_range(key) //返回鍵值為key的可插入的第乙個位置和最後乙個位置的區間,
//也就是鍵值 == key的元素區間
c = c2 //將c2所有元素賦值給c
c = rv //將右值物件rv的所有元素移動賦值給c
c = initlist //使用初始化列表進行賦值
c1.swap(c2) //交換c1和c2的數
swap(c1,c2) //交換c1和c2的數
c.begin() //返回乙個雙向迭代器,指向第乙個元素
c.end() //返回乙個雙向迭代器,指向最後乙個元素
c.cbegin() //返回乙個雙向常迭代器,指向第乙個元素
c.cend() //返回乙個雙向常迭代器,指向最後乙個元素
c.rbegin() //返回乙個逆向迭代器,指向逆向迭代的第乙個元素
c.rend() //返回乙個逆向迭代器,指向逆向迭代的最後乙個元素
c.crbegin() //返回乙個逆向常迭代器,指向逆向迭代的第乙個元素
c.crend() //返回乙個逆向常迭代器,指向逆向迭代的最後乙個元素
c.insert(val) //插入乙個val的副本,返回新元素位置(對map來說不論成功與否)
c.insert(pos,val) //插入乙個val副本,返回新元素位置(pos應該是插入的搜尋起點)
c.insert(beg,end) //將範圍beg到end的所有元素的副本插入到c(無返回值)
c.insert(initlist) //插入初始化列表的所有元素的副本(無返回值)
c.emplace(args...) //插入乙個使用args初始化的元素副本,返回新元素位置(對map來說不論成功與否)
c.emplace_hint(pos,args...) //插入乙個使用args初始化的元素副本,返回新元素
//位置(pos應該是插入的搜尋起點)
c.erase(val) //移除所有與val值相等的元素,並返移除的元素個數
c.erase(pos) //移除迭代器位置的元素,並返回下個元素的位置
c.erase(beg,end) //移除beg到end範圍內的所有元素,並
//返回下個元素的位置
c.clear() //移除所以元素,清空容器
//使用value_type
std::map
coll;
coll.insert(std::map
::value_type("otto",22.3));
//使用pair<>
std::map
coll;
coll.insert(std::pair("otto",22.3));
//使用make_pair()
std::map
coll;
coll.insert(std::make_pair("otto",22.3));
c[key] //返回乙個指向鍵值為key的元素的引用,如果不存在就插入這個元素
c.at(key) //返回乙個指向鍵值為key的元素的引用
#include
#include
#include
#include
#include
using
namespace
std;
/**
map集合的插入和遍歷
*/int main()
return
0;
}
STL之map容器和multimap容器
所有元素都會根據元素的鍵值自動排序。map所有的元素都是pair,同時擁有實值和鍵值,pair的第一元素被視為鍵值,第二元素被視為實值,map不允許兩個元素有相同的鍵值。map的鍵值關係到map元素的排列規則,任意改變map鍵值將會嚴重破壞map組織。如果想要修改元素的實值,那麼是可以的。map和l...
STL之map容器和multimap容器
所有元素都會根據元素的鍵值自動排序。map所有的元素都是pair,同時擁有實值和鍵值,pair的第一元素被視為鍵值,第二元素被視為實值,map不允許兩個元素有相同的鍵值。map的鍵值關係到map元素的排列規則,任意改變map鍵值將會嚴重破壞map組織。如果想要修改元素的實值,那麼是可以的。map和l...
日常學習 STL之map
對map最初的印象,源於王建德老師在山東noip夏令營上那銷魂的一句 map,i,j 音 嘜頗,挨,傑 ruka上對map並沒有講很多,ty菌說map主要用來寫雜湊 雖然她曾用它寫過鄰接矩陣 迴圈巢狀map intorz 而李晨和里奧甚至表示基本不用map。但是既然有這一項奇妙的東西,想必是有用的,...