map常识。map与pair

1、构建

mapmymap;

mapmymap;

mapmymap;

初始化赋值

unordered_mapmap = {

        {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(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

                return a.x < b.x; //大顶堆

        }

};

二、pair

1、pair的类型:pair是一种模版类型。每个pair 可以存储两个值。这两种值的类型没有限制,也可以将自己写的类放进去。

2、pair 应用:如果一个函数有两个返回值的话,如果是相同类型,就可以用数组返回,如果是不同类型,两个属性的话,就可以用pair 进行操作,有多个属性的时候 ,可以使用tuple。

pairp (5,6);

pair p1= make_pair(5,6);

pair p2 ("aa",5.0);

pair p3 = make_pair("aa",5.0);

在C++中,pair是一种用于存储两个不同类型的值的结构。它通常被用作容器类(如map、unordered_map等)的元素类型,其中一个值是键(key),另一个值是与之相关联的值(value)。因此,pair可以被认为是一种key-value结构。

!!!pari的比较,先比较第一个元素,第一个相等比较第二个。注意并没有关联容器,如果在map中,key是唯一的

三、联系

map作为一个容器,pair作为元素。 

你可能感兴趣的:(c++知识点,c++,数据结构,leetcode)