一文快速掌握C++双端数组容器deque的使用

一文快速掌握C++双端数组容器deque的使用

deque是什么

deque(全称double-ended queue,即双端队列)是C++ STL中的双端数组容器,它支持随机存取、动态扩展长度等操作,是一种很常用的数据结构。它内部使用分段连续的存储空间来实现,可以将插入和删除的操作在两端进行,分别使用头尾指针来指示队列的两端,性能很高。

以下是创建一个deque的方法:

#include <deque>
using namespace std;

deque<int> dq;

我们在include中加入deque头文件,并使用using namespace std;使用std命名空间。然后通过deque dq;来定义一个dq变量。

deque的基本操作

在deque头部和尾部插入元素

使用push_back()在deque的尾部插入元素,使用push_front()在deque的头部插入元素。比如:

dq.push_back(1);  // 在尾部插入1
dq.push_front(2); // 在头部插入2

从deque头部和尾部删除元素

使用pop_back()从deque的尾部删除元素,使用pop_front()从deque的头部删除元素。比如:

dq.pop_back();  // 删除尾部元素
dq.pop_front(); // 删除头部元素

获取deque头部和尾部的元素

使用front()函数获取deque头部的元素,使用back()函数获取deque尾部的元素。比如:

int first = dq.front(); // 获取头部元素
int last = dq.back();   // 获取尾部元素

获取deque的长度和判断deque是否为空

使用size()函数获取deque的长度,使用empty()函数判断deque是否为空。比如:

int len = dq.size();       // 获取deque的长度
bool is_empty = dq.empty(); // 判断deque是否为空

在deque中随机访问元素

可以使用[]运算符在deque中随机访问元素,下标从0开始。如:

int x = dq[0]; // 获取dq的第一个元素
int y = dq[2]; // 获取dq的第三个元素

需要注意的是,[]运算符不会检查下标是否合法,使用时需要先检查下标是否正确。

deque的高级操作

deque的迭代器

deque具有双向迭代器,可以使用begin()和end()函数来获取deque的迭代器。

deque<int>::iterator it; // 定义迭代器it
for (it = dq.begin(); it != dq.end(); it++) {
  // 遍历deque的每一个元素
}

插入元素到指定位置

可以使用insert()函数在deque的指定位置插入元素,其用法如下:

dq.insert(dq.begin()+1, 100); // 在dq的第二个位置插入100

删除指定位置的元素

可以使用erase()函数删除deque的指定位置的元素,其用法如下:

dq.erase(dq.begin()+2); // 删除dq的第三个元素

示例说明

示例1

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

int main() {
  deque<int> dq;

  dq.push_back(1);
  dq.push_back(2);
  dq.push_back(3);

  dq.pop_front();
  dq.push_front(4);

  deque<int>::iterator it;
  for (it = dq.begin(); it != dq.end(); it++) {
    cout << *it << " "; // 输出: 4 1 2
  }

  cout << endl;

  return 0;
}

示例2

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

int main() {
  deque<int> dq;

  dq.push_back(1);
  dq.push_back(2);
  dq.push_back(3);

  dq.erase(dq.begin()+1, dq.begin()+3);

  deque<int>::iterator it;
  for (it = dq.begin(); it != dq.end(); it++) {
    cout << *it << " "; // 输出: 1
  }

  cout << endl;

  return 0;
}

以上就是C++双端数组容器deque的使用技巧,希望能对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文快速掌握C++双端数组容器deque的使用 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 魔兽世界邪DK属性优先级 6.0邪DK如何堆属性详解

    魔兽世界邪DK属性优先级 6.0邪DK如何堆属性详解 1. 简介 邪恶死亡骑士(邪DK)是魔兽世界中的一个职业,他们以邪恶和死亡的力量为武器,在战斗中以高伤害输出为特点。在6.0版本中,邪DK的属性优先级决定了他们的输出能力和存活能力。 2. 属性优先级 邪DK的属性优先级如下: 力量(Strength):力量是邪DK最重要的属性,它直接影响了邪DK的攻击力…

    other 2023年6月28日
    00
  • php SQL Injection with MySQL

    PHP SQL注入攻略 本攻略将详细介绍如何防止PHP应用程序中的SQL注入攻击。以下是具体步骤: 步骤1:使用预处理语句 使用预处理语句是防止SQL注入的最有效方法之一。预处理语句使用占位符来代替用户输入的变量,并在执行SQL查询之前对变量进行参数绑定。这样可以防止恶意用户通过注入恶意SQL代码来破坏数据库。 示例说明1:使用预处理语句执行查询 $stmt…

    other 2023年10月17日
    00
  • 在WINDOWS中设置计划任务执行PHP文件的方法

    以下是在WINDOWS中设置计划任务执行PHP文件的详细攻略: 一、查看PHP安装路径 首先需要查看PHP安装路径。打开命令行工具(CMD),输入以下命令: where php 运行后会输出PHP的安装路径,例如: C:\php\php.exe 二、创建PHP文件 接下来需要创建要执行的PHP文件。在任意文本编辑器中创建一个新文件,例如: <?php …

    other 2023年6月27日
    00
  • 如何改变placeholder的样式

    如何改变placeholder的样式 在Web开发中,placeholder 用于在输入框中展示默认提示内容,比如搜索框中的“请输入关键字”。默认情况下,placeholder 的样式和输入框的文本样式一致,如果想要将其样式修改为特殊样式,则需要对其进行单独的样式设置。 下面是一些方法: 1.使用 ::placeholder 伪元素 ::placeholde…

    其他 2023年3月28日
    00
  • system.data.sqlite.dll控件常规安装方法

    system.data.sqlite.dll控件常规安装方法 system.data.sqlite.dll是Windows操作系统中的一个公共程序库,也是许多.NET程序开发中常用的一个组件,它提供了在应用程序中使用SQLite数据库的功能。在开发过程中,你可能需要使用到这个组件,需要对其进行安装或部署。 下载system.data.sqlite.dll 首…

    其他 2023年3月29日
    00
  • js判断主流浏览器类型和版本号的简单实现代码

    当需要在JavaScript中判断主流浏览器类型和版本号时,可以使用navigator.userAgent属性来获取用户代理字符串,然后通过正则表达式匹配来判断浏览器类型和版本号。下面是一个简单的实现代码: // 获取用户代理字符串 var userAgent = navigator.userAgent; // 判断浏览器类型和版本号 if (/Firefo…

    other 2023年8月2日
    00
  • Java可变个数形参的方法实例代码

    Java中的可变个数形参方法允许我们在方法中使用一个不定数量的参数来调用它。这个特性可以很方便的解决一些问题,例如需要处理不定数量的数据,但是参数个数又不确定的情况。 下面是Java可变个数形参的方法实例代码攻略: 创建可变个数形参的方法 Java的可变个数形参的方法可以使用…语法来定义,如下所示: public static int sum(int..…

    other 2023年6月27日
    00
  • Arch Linux怎么安装? ArchLinux安装教程汇总篇

    Arch Linux怎么安装? ArchLinux安装教程汇总篇 Arch Linux 是一种基于 x86-64 架构的轻量级和灵活的 Linux 操作系统,由于其简洁简单的设计和强大的定制性,备受广大 Linux 爱好者的喜爱。接下来,我们来详细讲解 Arch Linux 的安装过程。 准备安装所需的工具和文件 首先,你需要下载最新版的 Arch Linu…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部