1.map简介:
map是STL的一个关联容器,它提供一对一的hash。
- 第一个可以称为关键字(key),每个关键字只能在map中出现一次;
- 第二个可能称为该关键字的值(value)
- 所有元素会根据键值来自动排序
multimap和map的区别:
map不允许有重复的键值
multimap允许重复键值存在
map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,后边我们会见识到有序的好处。比如一个班级中,每个学生的学号跟他的姓名就存在著一对一映射的关系。
2,map的功能
自动建立key - value的对应。key 和 value可以是任意你需要的类型,包括自定义类型。
3.map的基础用法
map<int, string>s;//定义
map<vector<int>, int>h;
int n, m;
cin >> n;
for (int i = 0; i <= n; i++)
{
string a;
cin >> a;
s.insert({ i,a });//元素的插入两种方法
//s[i]=a; s[i]输入能够实现元素覆盖
}
//遍历
// 方式一、range for C++ 11版本及以上
for (auto& v : s)
{
cout << v.first << " " << v.second << endl;
}
//方式二、迭代器
for (auto v = s.begin(); v != s.end(); v++)
{
cout << v->first << " " << v->second << endl;
}
//map里面是否含有这个元素
if (s.find(1) != s.end())
{
cout << s[1];
}
4.其他功能: