堆
堆的声明
queue<int> qu; 注意:堆的头文件是 #include<queue>
queue常用函数
qu.push(); 从堆尾插入元素
qu.pop(); 弹出堆首的元素
qu.front(); 访问堆首的元素
qu.back(); 访问堆尾的元素
栈
栈的简单介绍
栈是一个先进后出的数据结构,它的存放就像往一根试管中放东西,越是在后面放的反而越在上面,即是先进去的后出来,所以是先进后出的。
栈的声明
stack<int> st; 注意:栈的头文件是 #include<stack>
stack常用函数
st.push(); 放入元素,放在栈的顶部
st.pop(); 弹出栈顶元素
st.top(); 访问栈顶元素
!st.empty(); 栈不为空
例题
补充知识
1.万能头文件
#include<bits/stdc++h>
2.调试的小技巧——对拍
对拍的操作
先写一个随机数据生成器的代码,用来生成随机但满足题意输入的数据
然后找一个标程代码(已经ac正确了的代码)或者自己写一个暴力的代码去读入先前生成的数据,然后便可得到对应的正确的输出
再然后把自己的正确性未知的代码也读入先前的数据,然后对比正确的输出,看哪些样例过不了。如果都能过,这可以多重复几次这样的操作
对拍的代码如何实现
我们以a+b为例
首先,我们需要明白,我们的数据输出可能是多的,所以我们选择把随机生成的输入数据以及执行完程序输出的生成数据都使用文档存储。如何把数据用文档存储起来呢?
我们可以使用 freopen("shuru.in", "w", stdout); 这种格式的