stack容器
stack是一种先进后出的数据结构,它只有一个出口
栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为
栈可以判断是否为空 empty()
栈可以返回元素个数 size()
入栈 push()
出栈 pop()
stack常用接口
构造函数:
stack<T> stk;
//stack采用模板类实现, stack对象的默认构造形式stack(const stack &stk);
//拷贝构造函数
赋值操作:
stack& operator=(const stack &stk);
//重载等号操作符
数据存取:
push(elem);
//向栈顶添加元素pop();
//从栈顶移除第一个元素top();
//返回栈顶元素
大小操作:
empty();
//判断堆栈是否为空size();
//返回栈的大小
int main()
{
stack<int>s;
for(int i=0;i<10;i++)
{
s.push(i);
}
//只要栈不为空,查看栈顶,并且执行出栈操作
while(!s.empty())
{
//查看栈顶元素
cout<<"stack 's top is:"<<s.top()<<endl;
s.pop();
}
cout<<"stack's size:"<<s.size()<<endl;
}
queue容器
queue是一种先进先出的数据结构,它有两个出口
queue允许从一端新增元素,从另一端移除元素
queue中只有队头和队尾可以被外界使用,因此队列不允许有遍历行为
入队 push
出队 pop
队头 front
队尾 back
判断队列是否为空 empty()
判断队列大小 size()
queue常用接口
构造函数:
queue<T> que;
//queue采用模板类实现,queue对象的默认构造形式queue(const queue &que);
//拷贝构造函数
赋值操作:
queue& operator=(const queue &que);
//重载等号操作符
数据存取:
push(elem);
//往队尾添加元素pop();
//从队头移除第一个元素back();
//返回最后一个元素front();
//返回第一个元素
大小操作:
empty();
//判断堆栈是否为空size();
//返回栈的大小
class person
{
public:
person(string name,int age)
{
this->m_name=name;
this->m_Age=age;
}
string m_name;
int m_Age;
};
int main()
{
queue<person>q;
person p1("唐僧",30);
person p2("孙悟空",1000);
person p3("猪八戒",900);
person p4("沙参",800);
//入队
q.push(p1);
q.push(p2);
q.push(p3);
q.push(p4);
//判断只要队列不为空,查看队头,查看队尾,出队
while(!q.empty())
{
//查看队头队尾元素
cout<<"queue'front is:"<<q.front().m_name<<":"<<q.front().m_Age<<endl;
cout<<"queue'bakc is:"<<q.back().m_name<<":"<<q.back().m_Age<<endl;
//出队
q.pop();
}
cout<<"queue'size is:"<<q.size()<<endl;
}