C++ std::deque 基本用法
#include <iostream>
#include <string>
#include <deque> // https://zh.cppreference.com/w/cpp/container/deque // vector 和 deque 的差别
// https://www.cnblogs.com/zhuyf87/archive/2012/12/09/2809896.html using namespace std; int main()
{
int a[] = { 1,2,3 };
deque<int> deq = {1,2,3}; ////////////////////////////////////////////////////////////////////////// deq.assign(4, 5); // 5 5 5 5 deque<int> deq1 = deq; // deep copy
deq1[0] = 10;
deq1.at(0) = 25;
int vhead = deq1.front();
int vtail = deq1.back(); //////////////////////////////////////////////////////////////////////////
// 迭代器 for (auto it = deq1.begin(); it != deq1.end(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl; // 25 2 3 for (auto it = deq1.cbegin(); it != deq1.cend(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl; // 25 2 3 for (auto it = deq1.rbegin(); it != deq1.rend(); ++it)
{
std::cout << *it << " ";
}
std::cout << std::endl; // 3 2 25 ////////////////////////////////////////////////////////////////////////// bool isEmpty = deq1.empty();
size_t size = deq1.size();
size_t mSzie = deq1.max_size(); deq1.clear();
deq1.shrink_to_fit(); deq1.insert(deq1.begin(), 6);
deq1.emplace(deq1.begin(), 7); deq1.insert(deq1.begin(), 2, 55); deque<int> deqtt = {11,22,33};
deq1.insert(deq1.begin(), deqtt.begin(), deqtt.end()); // 11 22 33 55 55 7 6 deq1.insert(deq1.begin(), {999, 888}); // 999 888 11 22 33 55 55 7 6 deq1.push_back(88);
deq1.emplace_back(99); deq1.push_front(100);
deq1.emplace_front(110); deq1.erase(deq1.begin());
deq1.erase(deq1.begin(), deq1.end()); deq1.swap(deqtt); // 交换的 size 大小不必一样 //////////////////////////////////////////////////////////////////////////
// resize 以及初始化值什么时候起作用 deq1.clear();
deq1.resize(2); // 0 0
deq1.resize(2, 4); // 0 0 其中的 4 还不起作用。 deq1.clear();
deq1.resize(2, 4); // 4 4
deq1.resize(2); // 4 4 没有改变 size,见下面的说明 deq1.clear();
deq1.resize(2); // 0 0
deq1.resize(3, 4); // 0 0 4 当 size 要改变时,4 时新值的初始值!原来的空间时不会删除的,也不改变。 deq1.clear();
deq1.resize(2, 4); // 4 4
deq1.resize(3); // 4 4 0 默认的 int 初始值为 0 return 0;
}
C++ std::deque 基本用法的更多相关文章
- C++ std::deque
std::deque template < class T, class Alloc = allocator > class deque; Double ended queue deque ...
- C++ std::stack 基本用法
#include <iostream> #include <string> #include <stack> // https://zh.cppreference. ...
- HDU5127 神坑题---vector 、 list 、 deque 的用法区别
题意:三个操作 1 a b : 队列中加入(x = a, y = b); -1 a b : 队列中减去(x = a, y = b); 0 p q :从队列的数对中查询哪一对x,y能够让 p * ...
- C++ std::map::erase用法及其陷阱
1.引入: STL的map中有一个erase方法用来从一个map中删除制定的节点 eg: map<string,string> mapTest; typedef map<string ...
- 【STL】-deque的用法
初始化: #include <deque> deque<float> fdeque; 算法: fdeque.push_front(f); fdeque.push_back(f) ...
- C++ std::pair的用法
1 pair的应用 pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存.另一个应用是,当一个函数需要返回2个数据的时候, ...
- std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题
在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已.std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移 ...
- std::deque
deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素.但它又与vector不同,deque支持高效插入和删除容器的头部元素 ...
- boost::interprocess::managed_shared_memory(2)(std::deque)
struct shareDataEx : shareData { int index; int total_size; }; typedef managed_shared_memory::segmen ...
随机推荐
- 单像空间后方交会(python实现)
原理:空间后方交会是以单幅影像为基础,从该影像所覆盖地面范围内若干控制点的已知地面坐标和相应点的像坐标量测值出发,根据共线条件方程,解求该影像在航空摄影时刻的外方位元素Xs,Ys,Zs,φ,ω,κ. ...
- Djangoday2第二个app加减法
第二个app 计算新建一个app在view定义显示的内容修改urls指定连接对应的视图测试另一种通过路径传参的方式访问网址路径传参的urls定义方法网址路径传参测试urls的urlnamedjango ...
- C语言博客作业11
一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...
- tp5判断多模块下访问PC端和手机端
现在很多网站的手机端和PC端都是分开的模块,这是问题就来了,有些手机端的用户输入了PC端的网址,直接访问了PC端.下面我教大家如何实现手机端用户访问PC时,跳转回手机端. 解决方法:把下面的代码放到公 ...
- luogu P3984 高兴的津津
题目描述 津津上高中了.她在自己的妈妈的魔鬼训练下,成为了一个神犇,每次参加一次OI比赛必拿Au虐全场.每次她拿到一个Au后就很高兴.假设津津不会因为其它事高兴,并且她的高兴会持续T天(包包含获奖当天 ...
- Object.defineProperty和Object.freeze、Object.seal
目录 一 Object.defineProperty 1.1 用法 1.2 数据描述 1.2.1 value 1.2.2 writable 1.2.3 enumerable 1.2.4 configu ...
- 记录XunSearch(讯搜)的使用教程步骤(CentOS7下)
一.安装编译工具 yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel ...
- debian官网qcow2镜像修改root账号密码,开启ssh等
1.下载官网qcow2镜像文件 wget http://172.16.20.10/vmtemplate/KVM/wangrui/Debian/debian-10.2.0-openstack-amd64 ...
- java动态编译运行代码
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URI;import java.util. ...
- python学习-for
# 对字典的遍历. key-value# dict_my = {"class":"python17","goal":"翻倍&quo ...