[TOC]

1. map

std::map 是有序键值对容器,它的元素的键是唯一的。用比较函数 Compare 排序键。搜索、移除和插入操作拥有对数复杂度。 map 通常实现为红黑树

1.1. 初始化

1.2. 查找

方法一

std::map<T,V> m1;
T key;
...
if(m1.find(key) != m1.end){
    //找到了
    map[key];//才能访问
}

1.3. 插入

方法一 数组 :形如map[key]=value;

//map[key] = value
map<int,string> mis; 
mis[0] = "first"; 
mis[1] = "second"; 
mis[2] = "third";

方法二 pair:形如insert(pair(keyName, valueName);

//make_pair
map<int,string> mis2(mis.begin(),mis.end());
mis.insert(pair<int, string>(3, "fourth"));

方法三 make_pair:形如insert(make_pair(key, value));

mapStudent.insert(make_pair(1, "student_one"));

方法四 value_type:形如insert(map::value_type(key,value);

//value_type
mis.insert(map<int, string>::value_type(3, "fourth")); 

for (auto& pair : mis){ 
    cout << pair.first << ":" << pair.second.c_str() << endl;
}

1.4. 删除

1.4.1. 删除所有

方法一

cmap.erase(cmap.begin(), cmap.end());

方法二

cmap.clear();

2. map常见问题

2.1. 1.map[]和find区别

map[]方式访问如果没有对象,便会创建。

find(key)== map.end() 表示没有键值,用于判空。

Copyright © ershouche-FE 2019 all right reserved,powered by Gitbook文件修订时间: 2022-02-28 22:26:26

results matching ""

    No results matching ""