当前位置: 首页 > java >正文

C++ deque大小操作、deque数据插入、deque数据删除

deque大小操作,代码见下

#include<iostream>
#include<deque>using namespace std;void printDeque(deque<int> &d) {//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {//	cout << *iter << " ";//}//cout << endl;for (int i = 0; i < d.size(); ++i) {cout << d[i];}cout << endl;
}
/*
1 empty
2 size
3 resize
*/int main() {deque<int> d;cout << "d.empty() = " << d.empty() << endl;cout << "d.size() = " << d.size() << endl;d.assign({ 1, 2, 3 });cout << "d.empty() = " << d.empty() << endl;cout << "d.size() = " << d.size() << endl;printDeque(d);d.resize(18);cout << "d.size(): " << d.size() << endl;printDeque(d);d.resize(20, 6);cout << "d.size(): " << d.size() << endl;printDeque(d);d.resize(10000);d.resize(5);cout << "d.size(): " << d.size() << endl;printDeque(d);return 0;}

以下是输出结果,可辅助理解

deque数据插入,有以下几种形式,见代码

#include<iostream>
#include<deque>using namespace std;void printDeque(deque<int> &d) {//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {//	cout << *iter << " ";//}//cout << endl;for (int i = 0; i < d.size(); ++i) {cout << d[i];}cout << endl;
}
/*
1 push_front 头插
2 push_back 尾插
3 insert 中间插入
*/int main() {deque<int> d;// 1 push_frontd.push_front(-1);d.push_front(-2);d.push_front(-3);// -3 -2 -1// 2 push_backd.push_back(1);d.push_back(2);d.push_back(3);// 3 insertd.insert(d.begin() + 3, 0);printDeque(d);d.insert(d.end() - 1, 5, 8);printDeque(d);d.insert(d.begin() + 1, d.begin() + 4, d.begin() + 6);printDeque(d);return 0;}

deque数据删除,代码见下:

#include<iostream>
#include<deque>using namespace std;void printDeque(deque<int> &d) {//for (deque<int>::iterator iter = d.begin(); iter != d.end(); iter++) {//	cout << *iter << " ";//}//cout << endl;for (int i = 0; i < d.size(); ++i) {cout << d[i];}cout << endl;
}
/*
1 pop_front 头删
2 pop_back 尾删
3 erase、clear
*/int main() {deque<int> d = {-1, 9, 8, 5, 2, 1, 1, -1};printDeque(d);d.pop_front();printDeque(d);d.pop_back();printDeque(d);deque<int>::iterator it = d.erase(d.begin() + 2);printDeque(d);cout << *it << endl;it = d.erase(it);printDeque(d);cout << *it << endl;d.erase(d.begin() + 1, d.begin() + 3);printDeque(d);d.clear();printDeque(d);return 0;}

结果见下,帮助理解:

http://www.xdnf.cn/news/7163.html

相关文章:

  • Linux学习笔记|GCC编译指令基础|静动态库|makefile
  • KAG:通过知识增强生成提升专业领域的大型语言模型(五)
  • Python异常处理与OOP深度解析及实战案例
  • 软件调试纵横谈-18-页堆
  • Java程序员学AI(一)
  • [强化学习的数学原理—赵世钰老师]学习笔记02-贝尔曼方程-下
  • Python 从列表中删除值的多种实用方法详解
  • C++学习:六个月从基础到就业——C++17:std::optional/variant/any
  • 玄机-第一章 应急响应-Linux日志分析
  • LoRA微调的参数学习
  • 1-机器学习的基本概念
  • 浅入ES5、ES6(ES2015)、ES2023(ES14)版本对比,及使用建议---ES6就够用(个人觉得)
  • 电子电路:什么是电子电路中的噪声?为什么会产生噪声?噪声全部是负面影响吗?
  • React-Query使用react-testing-library进行测试
  • c/c++的opencv直方图初识
  • HarmonyOS:应用文件访问(ArkTS)
  • C++算法(23):memset原理、性能对比与替代策略
  • 数据共享的艺术
  • C++中的容器
  • 进程和线程的区别和联系
  • FreeRTOS的学习记录(中断管理)
  • 5.18打卡
  • 延时双删-争议与我的思路-001
  • 动态通讯录程序
  • P1009 [NOIP 1998 普及组] 阶乘之和
  • 深入理解 LangChain 文档处理机制:Document 类与文档加载器详解
  • uni-app学习笔记七-vue3事件处理
  • 优化 Spring Boot 应用启动性能的实践指南
  • 单片机超频怎么搞?
  • 实时时钟项目设计