STL容器之deque

双端队列;序列式容器(deque/vector);底层分段连续

支持从双端进行插入和删除;

综合了vector和list的优点;

插入、删除、查找的平均时间复杂度都是O(1)

部分deque的操作如下:

#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <deque>
#include <thread>

using namespace std;

int main() {
    deque<int> de;
    deque<int> de1;

    de.push_back(1);
    de.push_back(10);
    de.push_back(111);
    de.push_back(121);
    de.push_back(131);
    de.push_back(141);
    de.push_back(151);

    std::cout << "===========iterator operator============" << std::endl;
    for (auto it = de.begin(); it != de.end(); ++it) {
        std::cout << *it << std::endl;
    }

    std::cout << "===========normal operator============" << std::endl;
    for (int i = 0; i < de.size(); ++i) {
        std::cout << de[i] << std::endl;
    }

    std::cout << "de.size()=" << de.size() << std::endl;
    std::cout << "de.max_size()=" << de.max_size() << std::endl;

    de1.assign(de.begin(), de.end());
    for (auto d1 : de1) {
        std::cout << d1 << std::endl;
    }

    //delete
    for (auto it = de.begin(); it != de.end(); /*++it*/) {
        if (131 == *it) {
            it = de.erase(it);
        }
        else {
            ++it;
        }
    }
    std::cout << "===========delete============" << std::endl;
    for (auto d : de) {
        std::cout << d << std::endl;
    }

    return 0;
}


结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL游标原理和使用方法

数据库开发过程中&#xff0c;当你检索的数据只是一条记录时&#xff0c;你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况&#xff0c;即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢&#xff1f;游标为我们提供了一种极为优秀的…

varnish-cache使用

Varnish Cache是一个web加速软件&#xff0c;用作web服务加速的反向代理&#xff0c;与Squid不同的是它建立在较新的系统内核调用上&#xff0c;并且主要是使用内存作为缓存&#xff0c;它现有的使用者有facebook等&#xff0c;据使用者反馈&#xff0c;其与Squid相比&#xff…

CF617E XOR and Favorite Number

CF617E XOR and Favorite Number 已知一个序列 \(a_1,\ a_2,\ \cdots,\ a_n\) 和 \(k\) &#xff0c;\(m\) 次询问给出 \(l,\ r\) &#xff0c;求 \(\displaystyle\sum_{il}^r\sum_{ji}^r[a_x\oplus a_{x1}\oplus \cdots \oplus a_yk]\) \(n,\ m\leq10^5,\ 0\leq a_i,\ k\leq10…

2020年文章汇总

据悉&#xff0c;深圳某工程师沦为C语言笔试枪手修改cmdline 把内存改成512MB上拉电阻的作用剖析C语言是如何画出这样的三角形的c语言画谢宾斯基三角形Linux字符设备驱动实例哦&#xff0c;这是桶排序回答一个微信好友的创业问题Linux-C编程 / 多线程 / 如何终止某个线程&#…

不理解Zookeeper一致性原理,谈何异地多活改造

转载&#xff1a;http://developer.51cto.com/art/201805/574334.htm Zookeeper 是最终一致性的&#xff0c;由于多副本&#xff0c;以及保证大多数成功的 Zab 协议&#xff0c;当一个客户端进程写入一个新值&#xff0c;另一个客户端进程不能保证马上就会读到&#xff0c;但能…

作诗一首

只恐花尽老相催&#xff0c;为爱鸬鹚雨里飞。 大珠小珠落玉盘&#xff0c;今日征行何岁归。 今日&#xff0c;在此作诗一首&#xff0c;来抒发一下老周我对心爱的小邢的思念。虽内心迷茫&#xff0c;却仍然坚守&#xff1b;虽征邢之难&#xff0c;偏向邢征行。只为相信曾经——…

一道C#类型转换的思考题

c#中&#xff0c;short s1 1; s1 s1 1;有什么错? &#xff08;真有问题&#xff09;short s1 1; s1 1;有什么错?&#xff08;没问题&#xff09;分析&#xff1a;留给你们。转载于:https://www.cnblogs.com/legecoding/archive/2012/07/23/2604991.html

程序员修炼之道--从小工到专家(一)

这个假期里看了一下这本书&#xff0c;乍一看名字&#xff0c;觉得这就是比较鸡汤类的书吧&#xff0c;但是在看了一部分之后&#xff0c;忽然感觉到&#xff0c;以前的自己真的是很无知&#xff0c;一直就没有认识到做一个真实的项目的困难性&#xff0c;也根本就没有真正的认…

2018年文章汇总

Android ANR 实例分析Linux kernel计算某段代码运行时间Linux Kernel 发展和内核特点C/C函数指针与指针函数(二)老王带你理解算法复杂度O(1),O(N),O(N^2)Android NDK Tombstone/Crash 分析堆和栈的区别&#xff08;转过无数次的文章&#xff09;C语言scanf-周末杂想C语言-scanf…

C++11:右值引用和转移赋值

1、左值与右值的区别&#xff1a; 左值&#xff1a;能别赋值的值&#xff1b;能取到地址的值&#xff0c;用&能取到地址&#xff0c;具有持久性&#xff1b; 右值&#xff1a;临时变量&#xff1b;不能用&取到地址&#xff1b;只是字面常量值 2、右值引用 一般用的…

[备忘]Visual Studio常用小技巧

1. 怎样调整代码排版的格式&#xff1f; 选择&#xff1a;编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。 格式化cs代码&#xff1a;Ctrlkf 格式化aspx代码&#xff1a;Ctrlkd 2. 怎样跳转到指定的某一行&#xff1f; 两种方法&#…

Angular CLI的简单使用(1)

参考地址: https://v2.angular.cn/docs/ts/latest/cli-quickstart.html Angular CLI是一个命令行界面工具&#xff0c;它可以创建项目、添加文件以及执行一大堆开发任务&#xff0c;比如测试、打包和发布。 1. 请先在终端/控制台窗口中运行命令 node -v 和 npm -v, 如下图,没有…

在没有数据集的情况下使用数据表

使用数据适配器填充数据表 View Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient;namespace PopDataTable {class Program{static void Main(string[] args){string connString…

2019年文章汇总

要不要去培训机构深造一下&#xff1f;我一个37岁的程序员朋友Linux内核中的GPIO系统整理的免费资料&#xff0c;帮你年后跳槽C语言&#xff0c;字符串指针做函数参数书籍推荐过年回家抢票攻略C语言&#xff0c;函数不可返回指向栈内存的指针你还会写这段C51程序吗&#xff1f;…

一种简单的LRU cache设计 C++

最近在工作中需要用到LRU cache用作缓存来提高性能&#xff0c;经过查阅各种资料&#xff0c;了解了其运行的机制&#xff0c;如下&#xff1a; LRU cache可以用于在内存中保持当前的热点数据&#xff0c;下面实现一个有大小限制的lru cache&#xff0c;相关如下&#xff1a; …

开博了,喜欢这里的气氛

开博了&#xff0c;喜欢这里的气氛 以后经常写东西 学PHP不久&#xff0c;很多东西需要学习 我的站点 www.zhibowang.cn www.xzld.com转载于:https://www.cnblogs.com/gxphp/archive/2009/04/05/1429819.html

bsgs整理

目录 bsgs问题 或 poj2417&#xff1a;概述代码exbsgs鸣谢 \(gzy gzy gzy\)bsgs问题 或 poj2417&#xff1a; 给定质数\(p\)&#xff0c;给定\(a\),\(b\),\((a,p)1\) 求出最小的整数x&#xff0c;使得\(a^{x}≡b(mod p)\) 概述 由费马小定理可以知道\(a^{xp-1}≡a^{x}≡b(mod p…

两个指针变量可以相减

两个指针变量可以相减转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/23/3845529.html

linux下修改max_user_processes和open_file的最大值

从事分布式服务器开发工作的都会遇到&#xff0c;linux下open_file的值默认是1024&#xff1b;max user processes的值默认是4096&#xff0c;在实际用于中&#xff0c;这两个值严重不足&#xff0c;常常需要调整这两个值。默认配置如下&#xff1a; 可以通过以下两种方式修改&…

Silverlight 全屏显示

privatevoidFullScreenButton_Click(objectsender, RoutedEventArgs e) { Application.Current.Host.Content.IsFullScreen Application.Current.Host.Content.IsFullScreen?false:true; }转载于:https://www.cnblogs.com/star250/archi…