pair之于vector、queue(vector<pair<int,int>>)
1、vector<pair<int,int>> 和 Map 的异同点
map:会对插入的元素按键Key,自动排序,而且键Key不允许重复;
vector:的这种用法不会自动排序,而且允许重复。
2、queue<pair<int,int> > q;
而在pair定义下,可以以2种方式来向队列中存入数据:
2.1 如借助make_pair()函数、或者用{}来存入
q.push(make_pair(x,y));
q.push({x,y});//在c11中使用,建议使用第一种方法
2.2 另外当队列有多个数据时可以使用pair<pair<int,int>, pair<int,int>>,这样就可以存入4个或4个以上的数据了,建议当数据超过4个以后使用结构体。
queue<pair<pair<int,int>,int> >q;
//first指示坐标,second指示长度
typedef pair<int,int> PII;
//这里是简写
queue<pair<PII,PII> > q;
//first指示坐标,second指示转弯数和方向
原文链接:https://blog.csdn.net/qq_74910785/article/details/128521887