deque容器,const_iterator

news2024/11/17 11:24:54

目录

 1.deque构造函数,容器中数据不修改的方法,const_iterator​编辑

2.deque赋值,=,assign

3.deque大小的操作,empty,size,resize

 4.deque容器插入和删除,push_back,push_front,pop_back,pop_front,insert,clear,erase

5.deque数据存取 at,[],front,back,遍历

6.deque排序,sort,vector也有sort

 

 1.deque构造函数,容器中数据不修改的方法,const_iterator

#include<iostream>
using namespace std;
#include<deque>
//deque #需要包含头文件
void printDeque(const deque<int>& d)
{
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
	{
		//容器中的数据不可以修改
		cout << *it << " ";
	}
	cout << endl;
}
void test01()
{
	deque<int>d1;//默认构造
	for (int i = 0; i < 10; i++)
	{
		d1.push_back(i);
	}
	printDeque(d1);

	deque<int>d2(d1.begin(), d1.end());//将[d1.begin(),d1.end()]赋值给d2
	printDeque(d2);

	deque<int>d3(10, 100);//将10个100赋值给d3
	printDeque(d3);

	deque<int>d4(d3);//拷贝构造
	printDeque(d4);
}

int main()
{
	test01();
	system("pause");//按任意键继续
	return 0;
}

2.deque赋值,=,assign

#include<iostream>
using namespace std;
#include<deque>
//deque 赋值操作
void printDeque(const deque<int>& d)
{
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
	{
		//容器中的数据不可以修改
		cout << *it << " ";
	}
	cout << endl;
}
void test01()
{
	deque<int>d1;//默认构造
	for (int i = 0; i < 10; i++)
	{
		d1.push_back(i);
	}
	printDeque(d1);

	//=赋值
	deque<int>d2;
	d2 = d1;
	printDeque(d2);

	//assign赋值
	deque<int>d3;
	d3.assign(d1.begin() + 1, d1.end());//输出:1 2 3 4 5 6 7 8 9
	printDeque(d3);

	deque<int>d4;
	d4.assign(10,100);
	printDeque(d4);
}

int main()
{
	test01();
	system("pause");//按任意键继续
	return 0;
}

3.deque大小的操作,empty,size,resize

#include<iostream>
using namespace std;
#include<deque>
//deque 大小操作
void printDeque(const deque<int>& d)
{
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
	{
		//容器中的数据不可以修改
		cout << *it << " ";
	}
	cout << endl;
}
void test01()
{
	deque<int>d1;
	for (int i = 0; i < 10; i++)
	{
		d1.push_back(i);
	}
	printDeque(d1);
	if (d1.empty())//容器为空返回真(1),否则返回假
	{
		cout << "d1为空" << endl;
	}
	else
	{
		cout << "d1不为空" << endl;
		cout << "d1的大小为:" << d1.size() << endl;
		//deque容器没有容量的概念
	}

	//重新指定大小
	d1.resize(15);//默认以0来填充
	printDeque(d1);//
	deque<int>d2(3, 1);
	d2.resize(10,2);//以2来填充
	printDeque(d2);//

	d1.resize(5);//超出的被删除掉
	printDeque(d1);
}

int main()
{
	test01();
	system("pause");//按任意键继续
	return 0;
}

 4.deque容器插入和删除,push_back,push_front,pop_back,pop_front,insert,clear,erase

#include<iostream>
using namespace std;
#include<deque>
//deque 容器的插入和删除
void printDeque(const deque<int>& d)
{
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
	{
		//容器中的数据不可以修改
		cout << *it << " ";
	}
	cout << endl;
}
//两端操作
void test01()
{
	deque<int>d1;
	//尾插
	d1.push_back(10);
	d1.push_back(20);

	//头插
	d1.push_front(100);
	d1.push_front(200);

	printDeque(d1);//输出:200 100 10 20

	//尾删
	d1.pop_back();
	printDeque(d1);//输出:200 100 10

	//头删
	d1.pop_front();
	printDeque(d1);//输出: 100 10
}
//insert插入
void test02()
{
	deque<int>d1;
	d1.push_back(10);
	d1.push_back(20);
	d1.push_front(100);
	d1.push_front(200);

	printDeque(d1);//输出:200 100 10 20

	//insert插入
	d1.insert(d1.begin(), 1000);
	printDeque(d1);//输出:1000 200 100 10 20

	d1.insert(d1.begin()+1,2,10000);
	printDeque(d1);//输出:1000 10000 10000 200 100 10 20

	//按照区间插入
	deque<int>d2;
	d2.push_back(1);
	d2.push_back(2);
	d2.push_back(3);
	d1.insert(d1.begin(), d2.begin(), d2.end());
	printDeque(d1);//输出:1 2 3 1000 10000 10000 200 100 10 20
}
//删除
void test03()
{
	deque<int>d1;
	d1.push_back(10);
	d1.push_back(20);
	d1.push_front(100);
	d1.push_front(200);
	printDeque(d1);//输出:200 100 10 20

	deque<int>::iterator it = d1.begin();
	d1.erase(it + 2);//等价于d1.erase(d1.begin() + 2);
	printDeque(d1);//输出:200 100 20

	//按照区间方式删除,//左闭右开
	d1.erase(d1.begin(), d1.begin() + 1);
	printDeque(d1);//输出:100 20

	//清空
	d1.clear();
}
int main()
{
	test01();
	cout << "********************************" << endl;
	test02();
	cout << "********************************" << endl;
	test03();
	system("pause");//按任意键继续
	return 0;
}

5.deque数据存取 at,[],front,back,遍历

#include<iostream>
using namespace std;
#include<deque>
//deque 容器数据的存取
void printDeque(const deque<int>& d)
{
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
	{
		//容器中的数据不可以修改
		cout << *it << " ";
	}
	cout << endl;
}
//两端操作
void test01()
{
	deque<int>d;
	d.push_back(10);
	d.push_back(20);
	d.push_back(30);
	d.push_front(100);
	d.push_front(100);
	d.push_front(200);
	d.push_front(300);
	//300 200 100 10 20 30
	
	//通过[]方式访问元素
	for (int i = 0; i < d.size(); i++)
	{
		cout << d[i] << " ";
	}
	cout << endl;

	//通过at方式访问元素
	for (int i = 0; i < d.size(); i++)
	{
		cout << d.at(i) << " ";
	}
	cout << endl;

	cout << "第一个元素" << d.front() << endl;
	cout << "最后一个元素" << d.back() << endl;
}

int main()
{
	test01();
	
	system("pause");//按任意键继续
	return 0;
}

6.deque排序,sort,vector也有sort

#include<iostream>
using namespace std;
#include<deque>
#include<algorithm>//标准算法头文件
//deque 容器排序
void printDeque(deque<int>& d)
{
	for (int i=0;i<d.size();i++)
	{
		cout<<d[i]<<" ";
	}
	cout << endl;
}
void test01()
{
	deque<int>d;
	d.push_back(10);
	d.push_back(20);
	d.push_back(30);
	d.push_front(100);
	d.push_front(200);
	d.push_front(300);
	printDeque(d);//300 200 100 10 20 30
	//排序,默认升序
	//对于支持随机访问的迭代器,都可以利用sort算法直接对其进行排序
	//vector容器也可以利用sort排序
	sort(d.begin(),d.end());//需要头文件#include<algorithm>
	cout << "排序后:" << endl;
	printDeque(d);//10 20 30 100 200 300
}


int main()
{
	test01();
	
	system("pause");//按任意键继续
	return 0;
}

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

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

相关文章

nginx反向代理+负载均衡上传webshell重难点+apache漏洞

nginx反向代理 nginx 负载均衡 负载均衡的策略 1、轮询&#xff1a;nginx默认就是轮询其权重都默认为1&#xff0c;服务器处理请求的顺序&#xff1a;ABABABABAB… upstream mysvr { server 192.168.137.131; server 192.168.137.136; }2、weight&#xff1a;跟据配置…

从ReentrantLock的实现看AQS的原理及应用

本文转载自&#xff1a;https://tech.meituan.com/2019/12/05/aqs-theory-and-apply.html 作者&#xff1a;美团技术团队 文章目录前言1 . ReentrantLock1.1 ReentrantLock特性概览1.2 Reentrant Lock与AQS的关联2 . AQS2.1 原理概览2.1.1 AQS 数据结构2.1.2 同步状态State2.2 …

数据结构——哈夫曼树编程,输入权值实现流程图代码

一、须知 本代码是在数据结构——哈夫曼树编程上建立的&#xff0c;使用时需将代码剪切到C等软件中。需要输入权值方可实现流程图&#xff0c;但是还需要按照编程换算出的结果自己用笔画出流程图。 下面将代码粘贴到文章中&#xff0c;同时举一个例子&#xff1a;二、代…

ChatGPT留给知乎、小红书的时间不多了

大家好啊&#xff0c;今天我打算给大家整点好活&#xff01;挑战一下用ChatGPT打入各平台内部。 知乎挑战&#xff01; 首先了解一下“知乎体” 知乎体是以专业知识为基础&#xff0c;以清晰的条理对问题进行阐述&#xff0c;并解决该问题的文体格式。对于不能明确给出答案的…

【Linux 信号】信号的产生方式、信号的捕捉的全过程

信号的处理方式是远远比信号的产生当闹钟响了就知道时间到了&#xff0c;说明对应信号处理方法比信号产生更早操作系统的信号处理方法在编写操作系统的时候就已经编写好了signal函数1.1所有的信号1.2 signal函数的概念和简单使用捕捉信号就是自定义对应的信号的处理方法9号信号…

【ArcGIS Pro二次开发】(1):开发环境配置

要想进行ArcGIS Pro的二次开发&#xff0c;需要安装【Visual Studio】、【ArcGIS Pro】软件和【ArcGIS Pro SDK】组件。在版本选择上&#xff0c;我选了最新的ArcGIS Pro3.0&#xff0c;对应的VS版本为Visual Studio 2022。 一、Visual Studio2022的安装 1、前往官网https://v…

【STM32】【HAL库】遥控关灯0 概述

相关连接 【STM32】【HAL库】遥控关灯0 概述 【STM32】【HAL库】遥控关灯1主机 【STM32】【HAL库】遥控关灯2 分机 【STM32】【HAL库】遥控关灯3 遥控器 需求 家里有几个房间,开关距离床都挺远的 睡觉想要关灯的时候需要下床 因此设计了本次项目 需要满足以下要求: 可以控…

【C1】数据类型,常量变量,输入输出,运算符,if/switch/循环,/数组,指针,/结构体,文件操作,/编译预处理,gdb,makefile,线程

文章目录1.数据类型&#xff1a;单双引号&#xff0c;char&#xff08;1B&#xff09;&#xff0c;int/float&#xff08;32位系统&#xff0c;大小一样4B&#xff0c;但存储方式不同&#xff09;&#xff0c;double&#xff08;8B&#xff09;&#xff0c;long double&#xf…

补充一些前端面试题

javascript有哪些库指路>js中的库uniapp和vue有什么区别什么是uniappuni-app&#xff08;uni&#xff0c;读you ni&#xff0c;是统一的意思&#xff09;是一个使用Vue.js开发所有前端应用的框架&#xff0c;开发者编写一套代码&#xff0c;可发布到iOS、Android、Web&#…

天工开物 #5 我的 Linux 开发机

首先说一下结论&#xff1a;最终我选择了基于 Arch Linux[1] 的 Garuda Linux[2] 发行版作为基础来搭建自己的 Linux 开发机。Neofetch 时刻发行版的选择在上周末的这次折腾里&#xff0c;我一共尝试了 Garuda Linux 发行版&#xff0c;原教旨的 Arch Linux 发行版&#xff0c;…

R语言读取Excel表格数据并绘制多系列柱状图、条形图

本文介绍基于R语言中的readxl包与ggplot2包&#xff0c;读取Excel表格文件数据&#xff0c;并绘制具有多个系列的柱状图、条形图的方法。 首先&#xff0c;我们配置一下所需用到的R语言readxl包与ggplot2包&#xff1b;其中&#xff0c;readxl包是用来读取Excel表格文件数据的&…

android---WebView实例

现在很多 App 里都内置了 Web 网页&#xff0c;比如电商平台淘宝、京东等。那么这种该如何实现呢&#xff1f;其实这是 Android 里一个叫 WebView 的组件实现的。下面将介绍 WebView 的实例。下面的实例是以组件化为基础搭建的。 新建项目 WebView&#xff0c;然后对整个项目做…

网络安全攻防中,Rock-ON自动化的多功能网络侦查工具,Burpsuite被动扫描流量转发

网络安全攻防中&#xff0c;Rock-ON自动化的多功能网络侦查工具&#xff0c;Burpsuite被动扫描流量转发。 #################### 免责声明&#xff1a;工具本身并无好坏&#xff0c;希望大家以遵守《网络安全法》相关法律为前提来使用该工具&#xff0c;支持研究学习&#xff…

linux003之远程操作

Xshell简介&#xff1a; Xshell 是一个强大的安全终端模拟软件&#xff0c;它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机&#xff0c;可以操控到linux服务器。  Xshell可以在Windows界面下用来访问远端不同系统下的服务器&#…

一些常见错误

500状态码: 代表服务器业务代码出错, 也就是执行controller里面的某个方法的过程中报错, 此时在IDEA的控制台中会显示具体的错误信息, 所以需要去看IDEA控制台的报错404状态码: 找不到资源找不到静态资源 检查请求地址是否拼写错误 检查静态资源的位置是否正确 如果以上都没有问…

Docker中安装Oracle-12c

前言 MySQL和Oracle是开发中常用到的两个关系型数据库管理系统&#xff0c;接上一期内容&#xff0c;这一期在Docker中完成oracle-12c的安装和配置。 安装oracle-12c 1、拉取oracle-12c镜像 启动Docker Desktop后在cmd窗口中执行docker search oracle命令&#xff0c;搜索O…

LeetCode-1138. 字母板上的路径【哈希表,字符串】

LeetCode-1138. 字母板上的路径【哈希表&#xff0c;字符串】题目描述&#xff1a;解题思路一&#xff1a;首先考虑坐标位置&#xff0c;字符是有序的从0开始&#xff0c;当前字符c的行为(c-a)/5,列为(c-a)%5。其次是考虑特殊情况z。若当前从‘z’开始则只能往上走;若是其他字符…

Spring MVC 之返回数据(静态页面、非静态页面、JSON对象、请求转发与请求重定向)

文章目录1. 默认情况下返回静态页面2. 返回一个非静态页面的数据2.1 ResponseBody 返回页面内容2.2 RestController ResponseBody Controller3. 实现登录功能&#xff0c;返回 JSON 对象3.1 前端使⽤ ajax&#xff0c;后端返回 json 给前端3.2 前端发送 JSON 的标准格式4. 请…

ChatGPT 怎么用最新详细教程一看就会

ChatGPT 以其强大的信息整合和对话能力惊艳了全球&#xff0c;在自然语言处理上面表现出了惊人的能力。这么强大的工具我们都想体验一下&#xff0c;那么 ChatGPT 怎么用呢&#xff1f;本文将给你逐步详细介绍。 使用 ChatGPT 主要有4步&#xff1a; 注册 ChatGPT 账号通过短…

Maven_第五章 核心概念

目录第五章 其他核心概念1、生命周期①作用②三个生命周期③特点2、插件和目标①插件②目标3、仓库第五章 其他核心概念 1、生命周期 ①作用 为了让构建过程自动化完成&#xff0c;Maven 设定了三个生命周期&#xff0c;生命周期中的每一个环节对应构建过程中的一个操作。 …