**//stack容器:stack是一种先进后出的数据结构,它只有一个出口---------------->栈(先进后出,后进先出,不允许遍历,可以)
//栈可以判断是否为空,记录元素个数;
//stack常用的接口;
void test1()
{
//stack符合先进后出的操作
stsack<int>a;
//入栈
s.push(10);
s.push(20);
s.push(30);
s.push(40);
//只要栈不为空,查看栈顶,并执行出栈操作
while (!s.empty())
{
//查看栈顶元素
cout << "栈顶元素为:" << s.pop() << endl;
}
//出栈
s.pop();
}
cout << "栈的大小" << s.size() << endl;
int main()
{
test1();
system("pause");
return 0;
}
//queue栈容器:它是一种先进先出的数据结构,只有队头和队尾可以被外界访问,不可以遍历
//queue相关的操作函数
//queue<T>q //利用queue采对象用类模板实现,queue对象的默认构造形式
//queue(const queue& q);//拷贝构造函数;
//queue& operator=(const queue& q)//重载等号操作符;
////数据存取
//push(elem);//在队尾添加元素;
//pop();//从队头移除第一个元素
//back();//返回最后一个元素
//front();//返回第一个元素
////大小操作
//empty();//判断堆栈是否为空;
//size();//返回栈的大小;
#include<iostream>
using namespace std;
#include<string>
#include<queue>
class Person
{
public:
Person(string name, int age)
{
this->m_Name = name;
this->m_Age = age;
}
string m_Name;//姓名
int m_Age;
};
void test2()
{
//创建队列
queue<Person>q;
Person p1("人才",10);
Person p2("马人才",90);
Person p3("牛人才",60);
Person p4("好人才",20);
//入栈
q.push(p1);
q.push(p2);
q.push(p3);
q.push(p4);
//只要队列不为空,查看队头,查看队尾,出队
while (!q.empty())
{
//查看队头
cout << "队头元素-姓名" << q.front().m_Name << "年龄" << q.front().m_Age <<
endl;
cout << "队尾元素-姓名" << q.back().m_Name << "年龄" << q.back().m_Age << endl;
//出队
q.pop();
}
cout<< "队的大小" << q.size() << endl;
}