在编程语言中怎样定义队列及其使用(C++)

队列是一种常见的数据结构,主要用于元素的存储和访问,遵循先进先出(FIFO,First In First Out)的原则。在C++编程中,定义和使用队列可以通过STL(标准模板库)提供的queue库来实现。

1. 定义并初始化队列

在代码中定义队列需要引入头文件,代码如下:

#include <queue>            //包含队列头文件 
using namespace std;

queue<int> q;               //定义一个空的int类型队列

这里定义了一个名为q的int类型队列,使用默认的构造函数创建一个空的队列。如果需要在定义时初始化队列,可以使用以下代码:

queue<int> q1({ 1, 2, 3 });     //定义并初始化整数队列
queue<string> q2({ "apple", "orange", "banana" });     //定义并初始化字符串队列

可以使用花括号“{ } ”来初始化队列,这里可以实现Int类型或字符串类型队列的初始化。

2. 插入元素到队列中

队列中主要提供两种插入元素的方法:push()和emplace()。下面分别详细讲解。

  • push()方法

push()方法用于将元素插入到队列的末尾,代码如下:

q.push(10);                   //将10插入队列q的末尾
q.push(20);                   //将20插入队列q的末尾
q.push(30);                   //将30插入队列q的末尾
q.push(40);                   //将40插入队列q的末尾
  • emplace()方法

emplace()方法用于在队列的末尾创建一个新元素,代码如下:

q.emplace(50);                 //任务元素50 到队列q的末尾

3. 遍历队列元素

遍历队列元素主要有两种方式,一种是使用循环和front()方法、pop()方法来实现,另一种是使用STL提供的算法for_each() function来实现。

  • 方法一
while (!q.empty()) {            //当队列非空时继续循环
    cout << q.front() << " ";   //输出队列的第一个元素
    q.pop();                    //从队列中删除第一个元素
}
  • for_each()函数
#include <algorithm>    //包含算法库 
void output(int i) {
    cout << i << " ";
}

for_each(q.front(), q.back(), output);

这里采用STL中的for_each()函数,从队列的首位置到队列的末位置循环执行output()函数。

4. 删除队列的元素

队列中有两种方法用于删除队列中的元素:pop()和clear()。前者从队列中删除队首元素,而后者删除队列中所有元素。

  • pop()方法
q.pop();                    //从队列中删除第一个元素
  • clear()方法
q.clear();                  //从队列q中删除所有元素

示例1

假设现在需要使用队列,按照顺序输入两个数字,依次将这两个数字加入队列,每增加一个新的数字需要输出一下队列的所有元素,如此重复执行。

#include<iostream>
#include<queue>
using namespace std;

int main() {
    queue<int> q;//定义一个int类型的空队列
    int num1 = 0, num2 = 0;//定义两个变量

    while (cin >> num1 >> num2) {//循环输入两个数字
        q.push(num1);           //将第一个数字加入队列中
        q.emplace(num2);        //将输入的第二个数字加入队列末尾
        cout << "Elements of Queue: ";

        while (!q.empty()) {    //输出队列中的所有元素
            cout << q.front() << " ";
            q.pop();
        }
        cout << "\n";
    }

    return 0;
}

示例2

假设现需要按照一定规则,依次将所有数字入队列,并输出队列中的所有偶数。

#include<iostream>
#include<queue>
#include<algorithm>        //使用for_each()函数需要包含algorithm头文件
using namespace std;

void output(int i) {       //输出所有偶数函数
    if (i % 2 == 0) {
        cout << i << " ";
    }
}

int main() {
    queue<int> q;

    for (int i = 1; i <= 10; ++i) {     //将1-10的数字入队
        q.push(i);
    }

    cout << "Elements of Queue: ";
    for_each(q.front(), q.back(), output);   //输出队列中的所有偶数
    cout << "\n";

    return 0;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在编程语言中怎样定义队列及其使用(C++) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++简单QQ程序服务器端的实现代码

    下面我将为你详细讲解如何实现“C++简单QQ程序服务器端的实现代码”。 一、需求分析 在开始编写程序之前,我们需要先进行需求分析,明确程序的功能和实现方式。根据题目描述,我们需要实现一个C++简单QQ程序服务器端的实现代码,其主要功能包括: 用户可以注册账号并登录; 用户可以添加好友,删除好友,查询好友列表; 用户可以发送消息给好友; 用户可以查看收到的消息…

    C 2023年5月23日
    00
  • VS Code C++环境的搭建过程

    下面是VS Code C++环境的搭建过程。 环境准备 首先需要安装以下软件:- Visual Studio Code:https://code.visualstudio.com/- MinGW:http://www.mingw.org/ 安装过程不再赘述,安装好以上软件后,我们可以开始配置VS Code C++环境。 配置C++环境 打开Visual St…

    C 2023年5月23日
    00
  • 深入理解C语言的new[]和delete[]

    我可以为你详细讲解“深入理解C语言的new[]和delete[]”的完整攻略。 为什么需要new[]和delete[] 在C语言中,通常使用malloc和free函数来进行动态内存的分配和释放。而在C++中,有new和delete操作符来完成这个任务。其中,new和delete操作符不仅仅可以使用于基本数据类型的内存分配和释放,还能够使用于复杂数据类型的内存…

    C 2023年5月23日
    00
  • C/C++编译器GCC下的常用编译命令总结

    下面我将为你讲解“C/C++编译器GCC下的常用编译命令总结”的完整攻略。 总述 GCC是一款广受欢迎的开源编译器,支持多种编程语言,并且跨平台。它是GNU编译器套件中的一个组件,可在Linux,macOS和Windows上运行。本文将介绍几个GCC编译器的常用命令。 命令详解 编译命令 1. 编译C文件 编译C文件的命令为: gcc [-g] [-O] […

    C 2023年5月23日
    00
  • 通过示例详解C++智能指针

    通过示例详解C++智能指针 什么是智能指针 智能指针是C++中的一种封装类,用于替代传统的指针。其方便的特性在于它在生命周期结束时会自动释放内存,从而避免了内存泄漏的风险。C++标准库提供了三种类型的智能指针:unique_ptr、shared_ptr、weak_ptr。下面将分别介绍它们的用法。 unique_ptr unique_ptr是指向独占所有权的…

    C 2023年5月22日
    00
  • C语言 指针和数组

    让我们来详细讲解一下C语言中指针和数组的使用攻略。 指针和数组 指针 指针是一种特殊的变量,其存储的是另一个变量的地址。在C语言中,可以通过指针来访问和修改该变量的值,也可以用指针来实现动态内存分配。指针变量的声明格式如下: type *name; 其中,type是指针变量所指向变量的类型,name是指针变量的名称。 指针操作符 按照指针操作的不同,可以将指…

    C 2023年5月9日
    00
  • C/C++ 连接MySql数据库的方法

    连接MySQL数据库是C/C++开发人员需要掌握的一项基础技能。下面是连接MySQL数据库的方法: 安装MySQL连接库 要使用C/C++连接MySQL数据库,首先需要安装MySQL连接库。具体的安装步骤可以参考官方文档。在Linux系统下,可以使用以下命令安装: sudo apt-get install libmysqlclient-dev 连接MySQL…

    C 2023年5月22日
    00
  • c语言颜色代码详解

    C语言颜色代码详解 什么是C语言颜色代码 C语言颜色代码指的是在使用C语言开发环境时,代码具有不同颜色的代码块。这种颜色代码通常由开发环境或者编辑器自带,但也可以通过修改配置文件来自定义。 C语言颜色代码的分类 C语言颜色代码通常分为以下几类: 关键字 C语言颜色代码中,关键字通常会使用蓝色或者紫色标注,以示区别。C语言中的关键字包括if, else, wh…

    C 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部