iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >浅谈C++STL之双端队列容器
  • 983
分享到

浅谈C++STL之双端队列容器

2024-04-02 19:04:59 983人浏览 安东尼
摘要

目录概述插入元素遍历删除元素概述 deque块在头部和尾部都可以插入和删除。而不需要移动任何元素,而不需要移动其他元素(使用push_back()方法在尾部插入元素,会扩张队列,而使

概述

deque块在头部和尾部都可以插入和删除。而不需要移动任何元素,而不需要移动其他元素(使用push_back()方法在尾部插入元素,会扩张队列,而使用push_front()方法在首部插入元素和使用insert()方法在中间插入元素,只是将原位置上的元素进行覆盖,不会增加新元素)一般来说,当考虑到容器元素的内存分配策略和操作的性能时deque相当于vector更有优势。

创建deque对象与vector类似

插入元素

使用push_back()方法从尾部插入元素,会不断扩张队列。


#include<iOStream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    cout<<d[0]<<" : "<<d[1]<<endl;
    return 0;
}

从头部插入元素,不会增加新元素,只将原来有的元素覆盖。


#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    d.push_back(3);
    d.push_front(10);//d.insert(d.begin()+1, 10);
    d.push_front(20);//d.insert(d.begin()+2, 20);
    cout<<d[0]<<" "<<d[1]<<" "<<d[2]<<endl;
    return 0;
}

遍历


#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    d.push_back(3);
    for(int i = 0; i < d.size(); i ++)
        cout<<d[i]<<" ";
    cout<<endl;
    deque<int>::iterator it;
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    deque<int>::reverse_iterator rit;
    for(rit = d.rbegin(); rit != d.rend(); rit ++)
        cout<<*rit<<" ";
    cout<<endl;
    return 0;
}

删除元素

可以从双端队列的手部,尾部,中部删除元素,并可以清空双端队列容器


#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    for(int i = 1; i < 6; i ++)
        d.push_back(i);
    d.pop_front();
    d.pop_front();
    deque<int>::iterator it;
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.pop_back();
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.erase(d.begin()+1);
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.clear();
    cout<<d.size()<<endl;
    return 0;
} 

以上就是浅谈c++STL之双端队列容器的详细内容,更多关于C++STL之双端队列容器的资料请关注编程网其它相关文章!

--结束END--

本文标题: 浅谈C++STL之双端队列容器

本文链接: https://www.lsjlt.com/news/127881.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈C++STL之双端队列容器
    目录概述插入元素遍历删除元素概述 deque块在头部和尾部都可以插入和删除。而不需要移动任何元素,而不需要移动其他元素(使用push_back()方法在尾部插入元素,会扩张队列,而使...
    99+
    2022-11-12
  • 详解C++图搜索算法之双端队列广搜
    目录广度优先遍历双端队列BFS例题:AcWing 175. 电路维修解题思路AC代码广度优先遍历 广度优先遍历是一种按照层次顺序进行访问的方法,它具有以下两种重要性质: 在访问完所有...
    99+
    2022-11-13
  • C++图搜索算法之双端队列广搜怎么实现
    这篇文章主要介绍“C++图搜索算法之双端队列广搜怎么实现”,在日常操作中,相信很多人在C++图搜索算法之双端队列广搜怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++图搜索算法之双端队列广搜怎么实现...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作