map(进阶)

关于map的各种神仙用法……

某用map水的弱题单

映射

map<int,int>mp;
map<string,int>mp;
map<string,string>mp;
map<int,long>mp;
map<long,int>mp;
map<long,long>mp;
…………………………

各种各样的映射……

二维:

map<int,map<int,int> >;

不用人话说就是你建立了一个由int到由int到int的映射的映射;
稍微用人话说就是你先建立了一个由int到map的映射,然后这个map里有一个由int到int的映射。
用人话说就是你建立了一个二维map。
从左往右三个int,第一维是第一个int,第二维是第二个int,存的数就是第三个int;
!!注意了,二维map最后两个‘>’中间必须有空格,不然的话C++会以为你写了个‘>>’,然后编译不过。
三维四维同理

神奇:

map<int,int>far;
int find(int x){return far[x]==x?x:far[x]=find(far[x]);}

常数会炸,又不会离散化的,map做并查集,嘿嘿;

map<int,vector<int> >mp;
map<int,set<int> >mp;//此用法鸣谢ghc提供

map套vector,map套set,嘿嘿。当然一般用不到,可是此博客最上面那题单里的某个题可以这么水掉;

map<int,bool>pd;
map<long long,bool>pd;
map<string,bool>pd;
map<int,map<int,bool> >pd;

不管什么类型,map都能用来打标记;

map<你咋定义的咋填>::iterator 指针名;

这玩意就是定义一个map类型的指针

反正map就是个能用任何类型做下标不算极其快也不算比较慢还能套STL公式的桶,嗯对,就这样。

posted @ 2021-11-14 16:06  Konnya_ku  阅读(169)  评论(0编辑  收藏  举报