使用map要添加头文件#include <map>
,命名空间using namespace std
。
初始化一个map:
1 2 |
map<int, bool> m1; map<int, const char *> m2; |
对于C++11,还可以在初始化时设定一系列初始值:
1 2 3 4 |
map<const char *, int> age_map = { pair<const char *, int>("maqian", 22), pair<const char *, int>("xiaobai", 1) }; |
基本用法:
1 2 3 4 5 6 7 8 |
// 插入元素 insert(); // 删除元素 erase(); // 元素是否存在 count(): // 得到k的值 map[k]; |
注意的是获取key的值的时候,如果不存在这个元素,map将会自动增加一个当前key的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
int main() { map<int, bool> m1; map<int, const char *> m2; map<const char *, int> age_map = { pair<const char *, int>("maqian", 22), pair<const char *, int>("xiaobai", 1) }; age_map.insert( pair<const char *, int>("zhouzhou", 3) ); printf("count: %d, name: %s, age: %d\n", age_map.size(), "maqian", age_map["maqian"]); age_map.erase("maqian"); printf("count: %d, name: %s, age: %d\n", age_map.size(), "maqian", age_map["maqian"]); return 0; } |
1 2 |
count: 3, name: maqian, age: 22 count: 3, name: maqian, age: 0 |
因此,注意不要通过map[x]来判断元素是否存在,使用count()方法。
评论