C++ 标准库类型 map
生活随笔
收集整理的這篇文章主要介紹了
C++ 标准库类型 map
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++ 標準庫類型 map
一、map 的使用與定義
1、使用 map 類型
標準庫類型 map 就是字典,每個元素是一組鍵值對。使用紅黑樹實現。
- 關鍵字是互異的,不存在相同的鍵值。
- map 內部的元素通常按照其 Key 值排序,且排序方式是根據某種明確、嚴格的弱排序標準進行的,這種排序標準是由 map 內部的比較對象(即 map::key_comp)指定的。
2、定義和初始化 map 對象
- map 是類模板,實例化時必須指定鍵和值的類型。
- 通常聲明一個空的字典,之后再往里添加元素。
二、map 操作
1、map 類成員函數
clear ():清除 map 中所有元素
erase ():刪除 map 中指定的元素
insert ():添加 pair 類型的元素
find ():在 map 中查找元素,返回迭代器
begin():起始位置迭代器
end(): 終點位置迭代器
empty() :如果map為空則返回 true
size():返回map中元素的個數
key_comp() :返回key排序規則的函數
2、實例
#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訪問std::pair的第一個成員(Type1),second訪問第二個成員 (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 默認是按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 類型
與 map 類似。使用哈希表實現,內部元素是無序的。
#include <unordered_map>2、定義和初始化 unordered_map 對象
// 聲明一個空的unordered_map,鍵為int,值為string unordered_map<int,string> m;// 聲名并初始化unordered_map unordered_map<int,string> m1({{1, "one"}, {2, "two"}});總結
以上是生活随笔為你收集整理的C++ 标准库类型 map的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql分片库分页查询_准备开发一个数
- 下一篇: wps合并所有sheet页_表格高级筛选