29STL之Queue
来源:互联网 发布:廖雪峰python教程mobi 编辑:程序博客网 时间:2024/05/21 04:02
STL之Queue
- STL之Queue
- 简介
- 对象的默认构造
- push与pop方法
- 对象的拷贝构造与赋值
- 数据存取
- 大小
- 示例代码
1.简介
- queue是队列容器,是一种“先进先出”的容器。
- queue是简单地装饰deque容器而成为另外的一种容器。
#include <queue>
2.对象的默认构造
queue采用模板类实现,queue对象的默认构造形式:queue<T> queT;
如:
queue<int> queInt; //一个存放int的queue容器。queue<float> queFloat; //一个存放float的queue容器。queue<string> queString; //一个存放string的queue容器。... //尖括号内还可以设置指针类型或自定义类型。
3.push()与pop()方法
queue.push(elem); //往队尾添加元素queue.pop(); //从队头移除第一个元素queue<int> queInt;queInt.push(1);queInt.push(3);queInt.push(5);queInt.push(7);queInt.push(9);queInt.pop();queInt.pop();此时queInt存放的元素是5,7,9
4.对象的拷贝构造与赋值
queue(const queue &que); //拷贝构造函数queue& operator=(const queue &que); //重载等号操作符queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);queue<int> queIntB(queIntA); //拷贝构造queue<int> queIntC;queIntC = queIntA; //赋值
5.数据存取
queue.back(); //返回最后一个元素queue.front(); //返回第一个元素queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);int iFront = queIntA.front(); //1int iBack = queIntA.back(); //9queIntA.front() = 11; //11
6.大小
queue.empty(); //判断队列是否为空queue.size(); //返回队列的大小queue<int> queIntA; queIntA.push(1); queIntA.push(3); queIntA.push(5); queIntA.push(7); queIntA.push(9); if (!queIntA.empty()){ int iSize = queIntA.size(); //5}
7.示例代码
#include <iostream>using namespace std;#include <queue>//队列中基本数据类型void main61(){ queue<int> q; q.push(1); q.push(2); q.push(3); cout << "队头元素:" << q.front() << endl; cout << "队列的大小" << q.size() <<endl; while ( !q.empty()) { int tmp = q.front(); cout << tmp << " "; q.pop(); }}//队列的算法 和 数据类型的分离//teacher结点class Teacher{public: int age; char name[32];public: void printT() { cout << "age:" << age << endl; }};void main62(){ Teacher t1, t2, t3; t1.age = 31; t2.age = 32; t3.age = 33; queue<Teacher> q; q.push(t1); q.push(t2); q.push(t3); while (!q.empty()) { Teacher tmp = q.front(); tmp.printT(); q.pop(); }}void main63(){ Teacher t1, t2, t3; t1.age = 31; t2.age = 32; t3.age = 33; queue<Teacher *> q; q.push(&t1); q.push(&t2); q.push(&t3); while (!q.empty()) { Teacher *tmp = q.front(); tmp->printT(); q.pop(); }}void main666(){ //main61(); //main62(); main63(); cout<<"hello..."<<endl; system("pause"); return ;}
阅读全文
0 0
- 29STL之Queue
- STL之queue
- STL之queue
- STL 之 stack - queue
- STL之queue
- STL 之 queue
- STL之stack、queue
- STL之queue实现
- STL之Stack,Queue
- STL之queue
- STL系列之queue
- STL容器之queue
- STL之queue
- STL适配器之queue
- STL模板之queue
- STL之queue容器
- STL之Queue
- STL学习之queue适配器
- 过滤器Filter
- 直接插入排序
- Muduo网络库源码分析(二) 定时器TimeQueue,Timer,TimerId
- 数据结构学习—“一般树”的基本概念和知识
- 解析HL7协议
- 29STL之Queue
- jndi
- 继承 以及this和super关键字
- 香港必理痛儿童退烧止痛药水 用量详解 (Panadol)
- HDU 3336 Count the string (KMP的nex数组)
- 使用fn标签处理el表达式的值
- JavaScript权威指南学习笔记(一)2
- 开发教程地址
- 谷歌浏览器跨域