STL之双端队列deque:新手入门,基础应用

STL之双端队列deque:新手入门,基础应用

简单的自我介绍

一名努力学习code的计算机专业大二在校学生,平时不论是完成老师要求的code任务还是自己学习的过程
中都会遇到许多问题,本着记录自己成长、巩固知识还有和大家互相学习的想法写了第一篇博客。可能我
现在会的东西还微不足道,但我希望能够尽力帮助到那些比我还新的阔爱萌新们~~
第一次做博客,不足之处还望海涵~
(遇到觉得经典的有价值的问题并且在有时间的前提下会更新~)

STL之deque:基本函数的运用

源代码

废话不说上代码,大部分基本函数的功能都已写出

#include<iostream>     
#include<stdlib.h>             
#include<windows.h>           /*
#include<vector>                平时的习惯是加上能用到的,以后就很方便使用
#include<iomanip>
#include<stdlib.h>
#include<string>
#include<math.h>              */
#include<deque>//deque's headfile
using namespace std;


/*-----------打印双端队列-----------*/
void print_deque(const deque<int>& deque_int_x ,int num)
{
    int n;
    cout << "第" << num << "个双端队列的内容为" << endl;
    for (n = 0; n < deque_int_x.size(); ++n)//调用deque的size成员函数返回队列大小
    {
        cout << deque_int_x[n] << " ";
    }
    cout << "\n";
}



/*---------------------------------------STL之deque---------------------------------*/
int main()
{
    /*----------构造函数---------*/
    deque<int> deque_int_1;//无参数构造
    deque<int> deque_int_2(10, 2);//deque_int_2内容为10个2
    deque<int> deque_int_3(deque_int_2);//复制构造函数
    deque<int> deque_int_4(deque_int_2.begin(), deque_int_2.end());//将deque_int_2头尾间的所有元素复制到队列4中
    /*----------打印队列---------*/
    print_deque(deque_int_2, 2);
    print_deque(deque_int_3, 3);
    print_deque(deque_int_4, 4);
    /*----------插入函数----------*/
    cout << "向头尾分别插入元素后的队列为: " << endl;
    system("pause");
    deque_int_2.push_front(233);    //头插入
    deque_int_2.push_back(555);    //尾插入
    print_deque(deque_int_2, 2);    //输出测试
    /*----------弹出首尾元素---------*/
    cout << "弹出队首前两个元素后的队列为:  " << endl;
    system("pause");
    int n;     //控制循环
    for (n = 0; n < 2; ++n)
    {
        deque_int_2.pop_front();   //弹出前两个元素
    }
    print_deque(deque_int_2, 2);    //输出测试
    /*----------迭代器---------*/
    cout << "在队列2的第五个元素前插入2个713后的内容为: " << endl;
    system("pause");
    deque<int>::iterator iter = deque_int_2.begin();  //定义iter迭代器
    int n_;
    for (n_ = 0; n_ < 4; ++n_)    //移动迭代器到第五个元素
    {
        ++iter;
    }
    deque_int_2.insert(iter, 2, 713);//插入2个713到第五个元素前
    print_deque(deque_int_2, 2);
    /*-----------删除函数--------*/
    cout << "删除上一步添加的2个713元素后的队列内容为: " << endl;
    system("pause");
    int n2;
    --iter;                      //将迭代器移动到第二个713上,删除iter迭代器自动
                                 // 跳转到前一个元素上
    for (n2 = 0; n2 < 2; ++n2)   //删除上一步添加的2个713元素
    {
        deque_int_2.erase(iter);
    }
    print_deque(deque_int_2, 2);
    /*----------结束-----------*/
    int m;
    for (m = 0; m < 5; ++m)
    {
        cout << endl;
    }
    cout << "演示结束 " << endl;
    system("pause");
    return 0;
}

运行结果

在这里插入图片描述

结尾

为了方便讲解在每一段前面加了暂停,这里是一些基础的函数,知道这些我想就能对双端队列有初步了解也能自行实现一些功能。一起加油哇QAQ

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值