我是靠谱客的博主 俊逸黑猫,最近开发中收集的这篇文章主要介绍【快速入门 C++ STL】 demo 演示三:deque,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

deque 结合了vector的全部功能和list的首尾插入删除功能

/*********************/
/*
demo deque
*/
/*********************/
#include<deque>
#include<iostream>
using namespace std;
//遍历打印
void printFun(deque<int> &obj)
{
for (deque<int>::iterator it = obj.begin(); it != obj.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
int main()
{
//构造的几种方法
deque<int> d1, d2(10, 1);
for (size_t i = 0; i < 10; i++)
{
d1.push_back(i);
}
deque<int> d3(d1.begin(), d1.begin() + 2);
cout << "d1:t";
printFun(d1);
cout << "d2:t";
printFun(d2);
cout << "d3:t";
printFun(d3);
//通过头尾操作 front back
d1.front() = 10;
d1.back() = 12;
cout << "d1:t";
printFun(d1);
//删除首尾
d1.pop_back();
d1.pop_front();
d1.push_back(9);
d1.push_front(0);
cout << "删除首尾n";
cout << "d1:t";
printFun(d1);
//区间删除
d1.erase(d1.begin(), d1.begin() + 3);
cout << "区间删除n";
cout << "d1:t";
printFun(d1);
//指定元素删除
for (deque<int>::iterator it = d1.begin(); it != d1.end();)
{
if (*it == 4)
{
it = d1.erase(it);//删除迭代器会把it也删除,但erase函数会返回下一个迭代器位置
}
else
{
it++;
}
}
cout << "指定元素删除n";
cout << "d1:t";
printFun(d1);
//根据值查找下标
deque<int>::iterator it = find(d1.begin(), d1.end(), 6);
cout << "根据值查找下标n";
cout << distance(d1.begin(), it) << endl;
system("pause");
return 0;
}

 

最后

以上就是俊逸黑猫为你收集整理的【快速入门 C++ STL】 demo 演示三:deque的全部内容,希望文章能够帮你解决【快速入门 C++ STL】 demo 演示三:deque所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部