stl部分
1.pair
二元组。可以看成是如下定义:
struct pair{
int first,second;
};
一般pair型变量定义的方式是:
pair<int,int>p;
pair<double,double>a[222];
pair数组默认排序的依据是:优先按first升序进行排序。若first相等则按second升序进行排序。
##2.vector
可变长度的数组。
主要用法如下:
vector<int>a; //vector的定义 a.push_back(x); //在a的最后新增一个数x a[i]; //调用a的下标i对应的数 sort(a.begin(),a.end()); //对a数组(升序)排序
重点!!!
使用vector建图的技巧:
要求:
第一行输入n和m,代表点数 和边数。 接下来的m行,每行输入两个数x和y,代表x和y有一条无向(有向)边
【样例输入】
4 5
1 2
2 3
4 2
1 4
3 4
建图的代码(请务必理解记忆,如果不能理解那么就当模板记下来):
vector<int>a[100010]; //建议vector数组开大点
int n,m;
cin>>n>>m; //n代表顶点数量,m代表边数量
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x); //如果是有向边,该行省略
}
3.stack/queue/ deque/priority_queue
stack,即栈。
stack<int>s; //栈的定义 s.push(x); //将x压入栈顶 int tp=s.top(); //拿到栈顶元素(但不出栈) s.pop(); //栈顶元素出栈 s.empty(); //返回一个bool型,若栈为空返回ture,否则返回false
queue,即队列。
queue<int>s; //队列的定义 s.push(x); //x入队 int tp=s.front(); //拿到队首元素(即将出队的元素),但不出队 s.pop(); //队首出队
deque,即双端队列,也叫双向队列。deque的功能包含了栈和队列的功能,强烈建议大家掌握并熟练使用。
deque<in
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
技术岗必备:笔面试算法 文章被收录于专栏
<p> 本专刊由牛客官方团队打造 </p> <p> 算法作为技术岗位必会的内容,在笔面试中的重要性越来越高,但有很多同学对于算法怎么学习,怎么刷题以及如何自己调试依然一无所知<span></span> </p> <p> 牛客官方团队打造了本书内容帮助大家了解校招算法套路增强通过概率,为校招保驾护航 </p>


