1. stack容器
简介
堆栈:
stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。
有元素推入栈的操作称为:push,将元素推出stack的操作称为pop.
stack没有迭代器
Stack所有元素的进出都必须符合”先进后出”的条件,只有stack顶端的元素,才有机会被外界取用。Stack不提供遍历功能,也不提供迭代器。
stack常用API
stack构造函数
stack<T> stkT;//stack采用模板类实现, stack对象的默认构造形式:
stack(const stack &stk);//拷贝构造函数
stack赋值操作
stack& operator=(const stack &stk);//重载等号操作符
stack数据存取操作
push(elem);//向栈顶添加元素
pop();//从栈顶移除第一个元素
top();//返回栈顶元素
#include<iostream>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;
void test01()
{
//构造
stack<int> p;
//push压栈
p.push(10);
p.push(20);
p.push(30);
p.push(40);
p.push(50);
cout<<p.size()<<endl;//5
stack<int>p1;
p1.push(10);
p.swap(p1);
cout<<p.size()<<endl;//1
}
stack大小操作
empty();//判断堆栈是否为空
size();//返回堆栈的大小
void test01()
{
//构造
stack<int> p;
//push压栈
p.push(10);
p.push(20);
p.push(30);
p.push(40);
p.push(50);
cout<<p.size()<<endl;//5
stack<int>p1;
p1.push(10);
p.swap(p1);
cout<<p.size()<<endl;//1
}
2. queue容器
简介
队列:
Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。
queue没有迭代器
Queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。Queue不提供遍历功能,也不提供迭代器。
queue常用API
queue构造函数
queue queT;//queue采用模板类实现,queue对象的默认构造形式:
queue(const queue &que);//拷贝构造函数
queue存取、插入和删除操作
push(elem);//往队尾添加元素
pop();//从队头移除第一个元素
back();//返回最后一个元素
front();//返回第一个元素
queue赋值操作
queue& operator=(const queue &que);//重载等号操作符
#include<iostream>
#include<string>
#include<queue>
using namespace std;
void test()
{
queue<int> p;
queue<int>p1(p);
//尾插
p.push(10);
p.push(20);
p.push(30);
//尾元素
cout<<p.back()<<endl; // 30
//头元素
cout<<p.front()<<endl; // 10
p.pop(); // 30被弹出
cout<<p.front()<<endl; // 20
//=运算
queue<int>p2;
p2=p1;
}
queue大小操作
empty();//判断队列是否为空
size();//返回队列的大小
void test1()
{
queue<int> p;
//拷贝构造 此时p没有元素插入
queue<int>p1(p);
//尾插
p.push(10);
p.push(20);
p.push(30);
cout<<p.size()<<endl; // 3
p.pop();
cout<<p.size()<<endl; // 2
p.swap(p1);
cout<<p.size()<<endl; // 0
}