使用map要添加头文件#include <map>
,命名空间using namespace std
。
初始化一个map:
map<int, bool> m1;
map<int, const char *> m2;
对于C++11,还可以在初始化时设定一系列初始值:
map<const char *, int> age_map = {
pair<const char *, int>("maqian", 22),
pair<const char *, int>("xiaobai", 1)
};
基本用法:
// 插入元素
insert();
// 删除元素
erase();
// 元素是否存在
count():
// 得到k的值
map[k];
注意的是获取key的值的时候,如果不存在这个元素,map将会自动增加一个当前key的元素。
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;
}
count: 3, name: maqian, age: 22
count: 3, name: maqian, age: 0
因此,注意不要通过map[x]来判断元素是否存在,使用count()方法。
此处评论已关闭