stack
stack栈,是STL中实现后进后出的容器
#include <stack>
1、stack的定义:
stack<typename> name;
typename可为任意数据类型或容器
2、stack中元素的访问:
只能通过top()来访问栈顶元素
3、stack常用函数:
(1)push()
push(x)将x入栈
(2)top()
top()获得栈顶元素
(3)pop()
pop()用以弹出栈顶元素
(4)empty()
empty()可以检测stack内是否为空,返回true为空,返回false为非空
(5)size()
size()返回stack内元素的个数
4.常见用途:
实现一些递归,防止程序对栈内存的限制而导致程序运行出错
pair
pair可以看作一个内部有两个元素的结构体,且两个元素类型是可以指定的。
#include <utility>,使用map头文件时,会自动添加utility头文件。
如:struct pair{
typeName1 first;
typeName2 second;
};
1、pair的定义:
pair<typeName1,typeName2> name;
分别对应first和second的数据类型,可以为任意基本数据类型或容器
例:pair<string,int> p;
其初始化,只需在后面加上一个小括号,里面填上初始化元素
例:pair<string,int> p("***",1)
临时构建pair
(1)pair<string,int> p("***",1)
(2)用自带的make_pair函数
make_pair("***",1)
2、pair中元素的访问
pair中只有两个元素,按结构体方式访问即可
3、pair常用函数实例
比较操作:可直接使用==、!=、<、<=、>、>=
比较规则是先以first的大小作为标准,只有当first相等时判别second的大小
4、常见用途
(1)用来代替二元结构体及其构造函数,节省编码时间
(2)map的键值对来进行插入
algorithm头文件常用函数
1、max()、min()和abs()
max(x,y)和min(x,y)返回xy中最大值和最小值
abs(x)返回x的绝对值,x必须是整数,浮点型的绝对值请用math头文件的fabs
2、swap()
swap(x,y)用来交换x和y的值
3、reverse()
reverse(it,it2)可以将数组指针在[it,it2)之间的元素或容器的迭代器在[it,it)范围内的元素进行反转
4、next_permutation()
next_permutation()给出一个序列在全排列中的下一个序列