C++ 标准库类型 map
生活随笔
收集整理的這篇文章主要介紹了
C++ 标准库类型 map
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
C++ 標(biāo)準(zhǔn)庫(kù)類(lèi)型 map
一、map 的使用與定義
1、使用 map 類(lèi)型
標(biāo)準(zhǔn)庫(kù)類(lèi)型 map 就是字典,每個(gè)元素是一組鍵值對(duì)。使用紅黑樹(shù)實(shí)現(xiàn)。
- 關(guān)鍵字是互異的,不存在相同的鍵值。
- map 內(nèi)部的元素通常按照其 Key 值排序,且排序方式是根據(jù)某種明確、嚴(yán)格的弱排序標(biāo)準(zhǔn)進(jìn)行的,這種排序標(biāo)準(zhǔn)是由 map 內(nèi)部的比較對(duì)象(即 map::key_comp)指定的。
2、定義和初始化 map 對(duì)象
- map 是類(lèi)模板,實(shí)例化時(shí)必須指定鍵和值的類(lèi)型。
- 通常聲明一個(gè)空的字典,之后再往里添加元素。
二、map 操作
1、map 類(lèi)成員函數(shù)
clear ():清除 map 中所有元素
erase ():刪除 map 中指定的元素
insert ():添加 pair 類(lèi)型的元素
find ():在 map 中查找元素,返回迭代器
begin():起始位置迭代器
end(): 終點(diǎn)位置迭代器
empty() :如果map為空則返回 true
size():返回map中元素的個(gè)數(shù)
key_comp() :返回key排序規(guī)則的函數(shù)
2、實(shí)例
#include <map> using namespace std; map<int,string> m;// 插入insert(),三種方式 m.insert(pair<int, string>(1, "one")); m.insert(map<int, string>::value_type (1, "one")); m[1] = "one"// 刪除erase(),三種方式 m.erase("r123"); // 按鍵刪除 m.erase(iter) // 按迭代器刪除 m.erase(m.begin(), m.end()); // 按迭代器范圍刪除// 查找find (),按鍵查找值。有則返回該元素的迭代器,否則返回尾迭代器 // 用first訪問(wèn)std::pair的第一個(gè)成員(Type1),second訪問(wèn)第二個(gè)成員 (Type2) iter = m.find(1); if(iter != m.end())cout<<"Find, the value is"<<iter->second<<endl; elsecout<<"not find"<<endl;// 遍歷map map<int,string>::iterator it = m.begin() for (it; it != m.end(); it++)cout<<it->first<<":"<<it->second<<endl;// map 默認(rèn)是按key排序的。按值排序如下 #include <algorithm> typedef pair<int, string> PAIR int cmp(const PAIR &x, const PAIR &y) {return x.second > y.second; }sort(m.begin(), m.end(), cmp)三、unordered_map 的使用與定義
1、使用 unordered_map 類(lèi)型
與 map 類(lèi)似。使用哈希表實(shí)現(xiàn),內(nèi)部元素是無(wú)序的。
#include <unordered_map>2、定義和初始化 unordered_map 對(duì)象
// 聲明一個(gè)空的unordered_map,鍵為int,值為string unordered_map<int,string> m;// 聲名并初始化unordered_map unordered_map<int,string> m1({{1, "one"}, {2, "two"}});總結(jié)
以上是生活随笔為你收集整理的C++ 标准库类型 map的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql分片库分页查询_准备开发一个数
- 下一篇: wps合并所有sheet页_表格高级筛选