C++ queue 容器

C++ queue 容器


文章目录

  • C++ queue 容器
  • 前言
    • 1. queue 基本概念
    • 2. queue 构造函数
    • 3. queue 赋值
    • 4. queue 数据存取
    • 5. queue 大小
  • 总结


前言

本文包含queue基本概念、queue构造函数、queue赋值操作、queue数据存取、queue大小操作。


1. queue 基本概念

概念:

(1)、Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口

(2)、队列容器允许从一端新增元素,从另一端移除元素

(3)、队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为

(4)、队列中进数据称为 — 入队 push

(5)、队列中出数据称为 — 出队 pop
C++ queue 容器_第1张图片
生活中的队列:

排队买票、打饭;柜台办理业务都需要排队,先排先办理

2. queue 构造函数

(1)、queue que; queue采用模板类实现,queue对象的默认构造形式

(2)、queue(const queue &que); 拷贝构造函数

// queue队列容器构造函数

#include   // 包含标准输入输出流头文件
using namespace std;  // 使用标准命名空间

#include   // 使用queue栈容器,需包含头文件queue

void test() {

	// 1、默认构造
	queue<int> q;
	
	// 2、拷贝构造函数
	queue<int> q1(q);
}

int main() {

	test();

	system("pause");  // 相当于在本地 Windows 调试器中的:请按任意键继续...;暂停,方便看清楚输出结果

	return 0;  // 程序正常退出
}

3. queue 赋值

queue& operator=(const queue &que); 重载等号操作符

// queue队列容器赋值

#include   // 包含标准输入输出流头文件
using namespace std;  // 使用标准命名空间

#include   // 使用queue栈容器,需包含头文件queue

void test() {

	// 创建queue容器对象,并且通过模板参数指定容器中存放的数据的类型
	queue<int> q;
	queue<int> q1;

	// 重载等号操作符operator=
	q1 = q;
}

int main() {

	test();

	system("pause");  // 相当于在本地 Windows 调试器中的:请按任意键继续...;暂停,方便看清楚输出结果

	return 0;  // 程序正常退出
}

4. queue 数据存取

(1)、push(elem); 往队尾添加元素

(2)、pop(); 从队头移除第一个元素

(3)、front(); 返回第一个元素

(4)、back(); 返回最后一个元素

// queue队列容器数据存取

#include   // 包含标准输入输出流头文件
using namespace std;  // 使用标准命名空间

#include   // 使用queue栈容器,需包含头文件queue

// 创建一个Person类
class Person {

public:

	Person(string name, int age) {  // 有参构造,赋初始值
		this->m_Name = name;
		this->m_Age = age;
	}

	string m_Name;  // 姓名
	int m_Age;  // 年龄
};

void test() {

	// 创建queue容器对象,并且通过模板参数指定容器中存放的数据的类型
	queue<Person> q;

	// 创建Person实例,并赋初值
	Person p("张三", 18);
	Person p1("李四", 40);
	Person p2("王五", 52);
	
	// 1、push()往容器队尾添加数据元素
	q.push(p);
	q.push(p1);
	q.push(p2);

	// 2、pop()删除容器第一个数据元素
	q.pop();

	// 3、front()返回容器第一个元素
	cout << "q队列容器的头元素 ----------- 姓名: " << q.front().m_Name << "  年龄:"<<q.front().m_Age << endl;

	// 4、back()返回容器最后一个元素
	cout << "q队列容器的尾元素 ----------- 姓名: " << q.back().m_Name << "  年龄:" << q.back().m_Age << endl;
}

int main() {

	test();

	system("pause");  // 相当于在本地 Windows 调试器中的:请按任意键继续...;暂停,方便看清楚输出结果

	return 0;  // 程序正常退出
}

在这里插入图片描述

5. queue 大小

// queue队列容器大小

#include   // 包含标准输入输出流头文件
using namespace std;  // 使用标准命名空间

#include   // 使用queue栈容器,需包含头文件queue

// 创建一个Person类
class Person {

public:

	Person(string name, int age) {  // 有参构造,赋初始值
		this->m_Name = name;
		this->m_Age = age;
	}

	string m_Name;  // 姓名
	int m_Age;  // 年龄
};

void test() {

	// 创建queue容器对象,并且通过模板参数指定容器中存放的数据的类型
	queue<Person> q;

	// 创建Person实例,并赋初值
	Person p("张三", 18);
	Person p1("李四", 40);
	
	// 往容器队尾添加数据元素
	q.push(p);
	q.push(p1);

	// 1、empty()判断容器是否为空,返回真,则为空
	while (!q.empty()) {

		// 2、size()返回容器数据元素个数
		cout << "q队列容器不为空,数据元素个数为:" << q.size() << endl;
		break;  // 退出循环
	}
}

int main() {

	test();

	system("pause");  // 相当于在本地 Windows 调试器中的:请按任意键继续...;暂停,方便看清楚输出结果

	return 0;  // 程序正常退出
}

在这里插入图片描述


总结

(1)、queue 入队 — push;

(2)、queue 出队 — pop;

(3)、queue 返回队头元素 — front;

(4)、queue 返回队尾元素 — back;

(5)、queue 判断队是否为空 — empty;

(6)、queue 返回队列大小 — size。

你可能感兴趣的:(c++,开发语言)