光明区建设局网站,广州seo服务公司,网站文字怎么做超链接,nginx搭建wordpress基本介绍
c的队列就是std::queue。
需要包含的头文件#xff1a;
#includequeuequeue就是先进先出队列
queue,就是队列#xff0c;队列是一种容器适配器#xff0c;专门设计用于在FIFO上下文中操作(先进先出)#xff0c;其中将元素插入容器的一端并从另一端提…基本介绍
c的队列就是std::queue。
需要包含的头文件
#includequeuequeue就是先进先出队列
queue,就是队列队列是一种容器适配器专门设计用于在FIFO上下文中操作(先进先出)其中将元素插入容器的一端并从另一端提取。 队列是作为容器适配器实现的容器适配器是使用特定容器类的封装对象作为其底层容器的类提供一组特定的成员函数来访问其元素。元素被推入特定容器的“后面”并从其“前面”弹出。 底层容器可以是标准容器类模板之一也可以是其他专门设计的容器类。该底层容器应至少支持以下操作: empty size front back push_back pop_front 标准容器类deque和list满足这些要求。默认情况下如果没有为特定队列类实例化指定容器类则使用标准容器队列。
queue的模板参数
T 元素的类型。 别名为成员类型queue::value_type。 Container 存储元素的内部底层容器对象的类型。 其value_type应为T。 别名为成员类型queue::container_type。
queue的常用函数
back() //返回队列中最后一个元素
empty() //判断队列是否为空
front() //返回队列中的第一个元素
pop() //删除队列的第一个元素
push() //在队列末尾加入一个元素
size() //返回队列中元素的个数 queue的实例
演示了队列的基本操作
#pragma execution_character_set(utf-8)
#include QCoreApplication
#include QString
#include QMap
#include queue
#include iostream
#include QTextCodec
#include QDebug
using namespace std;
typedef struct _Student
{QString name;QMapQString,QByteArray scoreMap;
}Student;
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//QTextCodec *codec QTextCodec::codecForName(UTF-8);//QTextCodec::setCodecForLocale(codec);
// qDebug() QStringLiteral(2中文);
// qDebug() QString::fromLatin1(3中文);
// qDebug() QString::fromLocal8Bit(4中文);
// qDebug() QString::fromUtf8(5中文);
// qDebug() QString::fromWCharArray(L6中文);queueStudent q; //定义一个数据类型为int的queueStudent stu1;stu1.name QString::fromUtf8(小明);QMapQString, QByteArray scoreMap1;scoreMap1.insert(QString::fromUtf8(语文), 80);stu1.scoreMap scoreMap1;q.push(stu1); //向队列中加入元素1Student stu2;stu2.name QString::fromUtf8(小李);QMapQString, QByteArray scoreMap2;scoreMap2.insert(QString::fromUtf8(语文), 81);stu2.scoreMap scoreMap2;q.push(stu2); //向队列中加入元素2Student stu3;stu3.name QString::fromUtf8(小王);QMapQString, QByteArray scoreMap3;scoreMap3.insert(QString::fromUtf8(语文), 82);stu3.scoreMap scoreMap3;q.push(stu3); //向队列中加入元素3Student stu4;stu4.name QString::fromUtf8(小张);QMapQString,QByteArray scoreMap4;scoreMap4.insert(QString::fromUtf8(语文), 83);stu4.scoreMap scoreMap4;q.push(stu4); //向队列中加入元素4qDebug()将元素1、2、3、4一一加入队列中后队列中现在的元素为1、2、3、4;qDebug()队列中的元素个数为q.size()endl;//判断队列是否为空if(q.empty()){qDebug()队列为空;}else{qDebug()队列不为空;}qDebug()队列的队首元素为q.front().name得分 q.front().scoreMap[语文];//队列中的队首元素出队q.pop();qDebug()after pop 队列的队首元素为q.front().name得分 q.front().scoreMap[语文];qDebug()将队列队首元素出队后现在队列中的元素为2、3、4;return a.exec();
}运行情况
将元素1、2、3、4一一加入队列中后队列中现在的元素为1、2、3、4
队列中的元素个数为 4
队列不为空
队列的队首元素为 小明 得分 80
after pop 队列的队首元素为 小李 得分 81
将队列队首元素出队后现在队列中的元素为2、3、4总结
队列是操作受限的线性表 限定在只能在表的一端进行插入 在表的另一端进行删除。 和日常生活中的排队是类似的道理。 根据上面的示例可以得出如下: