C++的map提供一种指定类型间的一对一映射关系,其基本的创建、查找、删除操作如下:
#include <map>
#include <string>
#include <iostream>
using namespace std;
map<int,string> int_string; //声明一个从整型到字符串型的映射,即int为key,string为value
int_string[404]='Not Found'; //这是最简单的建立映射的语法
result=int_string.find(404); //map.find()返回一个迭代器指向键值,若该键不存在,则返回迭代器mao.end()
if(result==int_string.end()){
cout<<"we do not find 404"<<endl;
}
else{
cout<<"we find 404";
}
int_string.erase(result); //删除404
由于map的元素默认按key的升序排列,所以它没有sort方法,下面是它的其它常用方法:
map.begin():返回指向头部的迭代器。
map.end():返回指向尾部的迭代器。
map.clear():清空map。
map.count():返回指定元素的出现次数。
map.size():返回map的大小。
map.max_size():返回map可容纳的最大元素数。
要想达到O(1)的查找时间复杂度,要用unordered_map,用空间换取时间。
unordered_map和哈希表很像,并且方法和map相似。