不定长数组:vector
vector是一个模板类,作用为创建一个不定长的数组
声明方式:vector<int>a或者vector<double>b这种类型的方式。
基本操作:若a是一个vector,则有以下操作:
a.size( )返回数组元素的个数(数组的大小)
a.resize( )改变大小
a.push_back( )向尾部添加元素
a.pop_back( )删除最后一个元素
a.clear( )清空数组
队列:queue
队列是符合“先进先出”原则的公平队列
声明方式:queue<int>s
基本操作:
a.push( )在队尾添加一个元素
a.pop( )删除第一个元素
a.front( )返回第一个元素
a.back( )返回最后一个元素
a.empty( )如果队列为空返回真
a.size( )返回队列中元素的个数
栈:stack
“先进后出”
stack<int>s
基本操作:
empty() 堆栈为空则返回真
pop() 移除栈顶元素
push() 在栈顶增加元素
size() 返回栈中元素数目
top() 返回栈顶元素
优先队列:priority_queue
包含在头文件 <queue> 中
优先队列默认建立最大堆,如果需要建立最小堆或者对类建立堆,需要重载运算符
priotity_queue <int, vector<int>, cmp> qu;
基本操作:
q.empty( ) 如果队列为空,则返回true,否则返回false
q.size( ) 返回队列中元素的个数
q.pop( ) 删除队首元素,但不返回其值
q.top( ) 返回具有最高优先级的元素值,但不删除该元素
q.push( ) 在基于优先级的适当位置插入新元素