1、STL stack
stack就是“栈” 是容器适配器的一种。栈是一种先进后出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素全部从栈中删除,使之变成栈顶元素才可以。
1.1 构造函数
stack<T> stk;
//stack采用模板类实现, stack对象的默认构造形式stack(const stack &stk);
//拷贝构造函数
1.2 赋值操作
stack& operator=(const stack &stk);
//重载等号操作符
1.3 数据存取:
-
push(elem);
//向栈顶添加元素 -
pop();
//从栈顶移除第一个元素 -
top();
//返回栈顶元素 -
empty();
//判断堆栈是否为空 -
size();
//返回栈的大小
测试
void test_1()
{
stack<int> s;
s.push(10);
s.push(11);
while(!s.empty())
{
cout<<"栈的大小为:"<<s.size()<<endl;
cout<<"栈顶元素为:"<<s.top()<<endl;
s.pop();
}
cout<<"栈的大小为:"<<s.size()<<endl;
}
2、STL queue
queue 就是“队列”。队列是先进先出的,和排队类似。队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行。不能访问队列中间的元素。队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为
queue 可以用 list 和 deque 实现,默认情况下用 deque 实现。
2.1 构造函数
queue<T> que;
//queue采用模板类实现,queue对象的默认构造形式queue(const queue &que);
//拷贝构造函数
2.2 赋值操作
queue& operator=(const queue &que);
//重载等号操作符
2.3 数据存取:
push(elem);
//往队尾添加元素pop();
//从队头移除第一个元素back();
//返回最后一个元素front();
//返回第一个元素empty();
//判断堆栈是否为空size();
//返回栈的大小
测试
void test_2()
{
queue<int> q;
q.push(1);
q.push(4);
q.push(6);
q.push(9);
cout<<"队列大小为:"<<q.size()<<endl;
cout<<"队头元素为:"<<q.front()<<endl;
cout<<"队尾元素为:"<<q.back()<<endl;
q.pop();
cout<<"队列大小为:"<<q.size()<<endl;
cout<<"队头元素为:"<<q.front()<<endl;
cout<<"队尾元素为:"<<q.back()<<endl;
}