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