1、构建
map<int,int>mymap;
map<string,int>mymap;
map<int,double>mymap;
初始化赋值
unordered_map<char>map = {
{key,value},
{key,value},
{key},value
};
2、map的key和value
map.first:key
map.second :value
***map[key]++ ***。map[key]表示value。
3、插入insert
map.insert(pair<int,string>(10,"ft"))
map[10] = "ft";
*****在map中使用下标访问不存在的元素将导致在map容器中添加一个新的元素。*****
4、查找find;删除erase
auto iter = mymap.find(10)。find返回的是迭代器。没找到就是end()。
mymap.erase(iter);
5、count
map.count(val)。查找是否存在val键。有返回1,没有返回0;
自定义排序
c++ map是以key排序的,如果想要按照value进行排序,需要把pair放到vector中,按照sort并且重写排序函数。
struct tmp2 {//重写仿函数
bool operator() (type a, type b) { //type可是int,string,pair<int,int>等
return a.x < b.x; //大顶堆
}
};
二、pair
1、pair的类型:pair是一种模版类型。每个pair 可以存储两个值。这两种值的类型没有限制,也可以将自己写的类放进去。
2、pair 应用:如果一个函数有两个返回值的话,如果是相同类型,就可以用数组返回,如果是不同类型,两个属性的话,就可以用pair 进行操作,有多个属性的时候 ,可以使用tuple。
pair<int ,int >p (5,6);
pair<int ,int > p1= make_pair(5,6);
pair<string,double> p2 ("aa",5.0);
pair <string ,double> p3 = make_pair("aa",5.0);
在C++中,pair是一种用于存储两个不同类型的值的结构。它通常被用作容器类(如map、unordered_map等)的元素类型,其中一个值是键(key),另一个值是与之相关联的值(value)。因此,pair可以被认为是一种key-value结构。
!!!pari的比较,先比较第一个元素,第一个相等比较第二个。注意并没有关联容器,如果在map中,key是唯一的
三、联系
map作为一个容器,pair作为元素。