#include<iostream>
using namespace std;
#include<queue>
#include<ctime>
//queue是一种先进先出的数据结构,它有两个出口
//队列容器允许从一端新增元素,从另一端移除元素
//队列中进数据称为-入队push
//队列中出数据称为-出队pop
//只有队头和队尾能被访问,因此不允许有遍历行为
//构造函数
//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;
};
void test0201()
{
queue<Person> q;
for (int i = 0; i < 10; i++)
{
string nameSeed = "ABCDEFGHIJ";
string name = "学生";
name += nameSeed[i];
int age = rand() % 81 + 20;
Person p(name, age);
q.push(p);//入队
}
cout << "队列大小:" << q.size() << endl;
while (!q.empty())
{
//查看队头
Person p = q.front();
cout << "姓名:" << p.m_Name << "\t" << "年龄:" << p.m_Age << endl;
//查看队尾
p = q.back();
cout << "姓名:" << p.m_Name << "\t" << "年龄:" << p.m_Age << endl;
//出队
q.pop();
}
cout << "队列大小:" << q.size() << endl;
}
int main()
{
srand((unsigned int)time(NULL));
test0201();
system("pause");
return 0;
}
网友评论