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

阜阳讯拓网站建设桃子网站

阜阳讯拓网站建设,桃子网站,上海一 网站建设公司,广东两学一做网站C deque容器 文章目录C deque容器前言1. deque容器基本概念2. deque构造函数3. deque赋值操作4. deque大小操作5. deque 插入和删除6. deque 数据存取7. deque 排序总结前言 本文包含deque容器基本概念、deque构造函数、deque赋值操作、deque大小操作、deque插入和删除、deque…C deque容器 文章目录C deque容器前言1. deque容器基本概念2. deque构造函数3. deque赋值操作4. deque大小操作5. deque 插入和删除6. deque 数据存取7. deque 排序总结前言 本文包含deque容器基本概念、deque构造函数、deque赋值操作、deque大小操作、deque插入和删除、deque数据存取、deque排序。 1. deque容器基本概念 功能 双端数组可以对头端进行插入删除操作 deque与vector区别 1、vector对于头部的插入删除效率低数据量越大效率越低 2、deque相对而言对头部的插入删除速度回比vector快 3、vector访问元素时的速度会比deque快这和两者内部实现有关 deque内部工作原理 1、deque内部有个中控器维护每段缓冲区中的内容缓冲区中存放真实数据 2、中控器维护的是每个缓冲区的地址使得使用deque时像一片连续的内存空间 3、deque容器的迭代器也是支持随机访问的 2. deque构造函数 功能描述 deque容器构造 函数原型 1、dequeT deqT; 默认构造形式 2、deque(beg, end); 构造函数将[beg, end)区间中的元素拷贝给本身 3、deque(n, elem); 构造函数将n个elem拷贝给本身 4、deque(const deque deq); 拷贝构造函数 // deque双端数组容器构造函数#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 1、默认构造方式无参构造dequeint d;for (int i 0; i 10; i){// push_back()向容器尾部插入数据id.push_back(i);}Fun_Print(d); // 0 1 2 3 4 5 6 7 8 9// 2、将d容器开始迭代器到结束迭代器之间的数据元素拷贝给d1容器dequeint d1(d.begin(), d.end());Fun_Print(d1); // 0 1 2 3 4 5 6 7 8 9// 3、将10个100拷贝给d2容器dequeint d2(10, 100);Fun_Print(d2); // 100 100 100 100 100 100 100 100 100 100// 4、拷贝构造dequeint d3(d2);Fun_Print(d3); // 100 100 100 100 100 100 100 100 100 100 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }3. deque赋值操作 功能描述 给deque容器进行赋值 函数原型 1、deque operator(const deque deq); 重载等号操作符 2、assign(beg, end); 将[beg, end)区间中的数据拷贝赋值给本身 3、assign(n, elem); 将n个elem拷贝赋值给本身 // deque双端数组容器赋值#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;for (int i 0; i 10; i){// push_back()向容器尾部插入数据id.push_back(i);}Fun_Print(d); // 0 1 2 3 4 5 6 7 8 9// 1、重载operatordequeint d1;d1 d;Fun_Print(d1); // 0 1 2 3 4 5 6 7 8 9// 2、将d容器开始迭代器到结束迭代器之间的数据元素赋值给d2容器dequeint d2;d2.assign(d.begin(), d.end());Fun_Print(d2); // 0 1 2 3 4 5 6 7 8 9// 3、将10个100赋值给d3dequeint d3;d3.assign(10, 100);Fun_Print(d3); // 100 100 100 100 100 100 100 100 100 100 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }4. deque大小操作 功能描述 对deque容器的大小进行操作 没有容量可以无限扩展 函数原型 1、deque.empty(); 判断容器是否为空 2、deque.size(); 返回容器中元素的个数 3、deque.resize(num); 3.1、重新指定容器的长度为num,若容器变长则以默认值填充新位置 默认填充0 3.2、如果容器变短则末尾超出容器长度的元素被删除 4、deque.resize(num, elem); 4.1、重新指定容器的长度为num,若容器变长则以elem值填充新位置 填充elem 4.2、如果容器变短则末尾超出容器长度的元素被删除 // deque双端数组容器大小操作#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;for (int i 0; i 10; i){// push_back()向容器尾部插入数据id.push_back(i);}Fun_Print(d); // 0 1 2 3 4 5 6 7 8 9// 1、empty()判断容器是否为空返回真则为空if (d.empty()) {cout d容器为空 endl;}else {cout d容器不为空 endl;// 2、size()返回容器数据元素个数cout d容器个数为 d.size() endl; // 10}// 3.1、resize()指定容器长度为15默认填充0d.resize(15);Fun_Print(d); // 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0// 3.2、resize()指定容器长度为5删除超出容器长度的数据元素d.resize(5);Fun_Print(d); // 0 1 2 3 4// 4.1、resize()指定容器长度为10默认填充10d.resize(10, 10);Fun_Print(d); // 0 1 2 3 4 10 10 10 10 10// 4.2、resize()指定容器长度为5删除超出容器长度的数据元素d.resize(5, 5);Fun_Print(d); // 0 1 2 3 4 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }5. deque 插入和删除 功能描述 向deque容器中插入和删除数据 函数原型 1、两端插入操作 push_back(elem); 在容器尾部添加一个数据 push_front(elem); 在容器头部插入一个数据 pop_back(); 删除容器最后一个数据 pop_front(); 删除容器第一个数据 // deque双端数组容器插入#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;// 1、push_back()向容器尾部插入数据1、2d.push_back(1);d.push_back(2);Fun_Print(d); // 1 2// 2、push_front()向容器头部插入数据3、4d.push_front(3);d.push_front(4);Fun_Print(d); // 4 3 1 2// 3、pop_back()删除容器最后一个数据d.pop_back();Fun_Print(d); // 4 3 1 // 4、pop_front()删除容器第一个数据d.pop_front();Fun_Print(d); // 3 1 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }2、指定位置操作 insert(pos,elem); 在pos位置插入一个elem元素的拷贝返回新数据的位置 insert(pos,n,elem); 在pos位置插入n个elem数据无返回值 insert(pos,beg,end); 在pos位置插入[beg,end)区间的数据无返回值 erase(beg,end); 删除[beg,end)区间的数据返回下一个数据的位置 erase(pos); 删除pos位置的数据返回下一个数据的位置 clear(); 清空容器的所有数据 // deque双端数组容器插入和删除#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;// 1、insert()在容器开始迭代器处插入数据10d.insert(d.begin(), 10);Fun_Print(d); // 10// 2、insert()在容器结束迭代器处插入5个10d.insert(d.end(), 5, 100);Fun_Print(d); // 10 100 100 100 100 100// 3、insert()在容器结束迭代器处插入d容器开始迭代器到结束迭代器中的数据元素d.insert(d.end(), d.begin(), d.end());Fun_Print(d); // 10 100 100 100 100 100 10 100 100 100 100 100dequeint::iterator it d.begin(); // 创建一个迭代器itit 6; // 使it位置为6// 4、erase()按区间删除数据元素从第6个迭代器位置开始删除d容器之后所有数据元素d.erase(it, d.end());Fun_Print(d); // 10 100 100 100 100 100// 5、erase()删除d容器开始迭代器的数据元素d.erase(d.begin());Fun_Print(d); // 100 100 100 100 100// 6、clear()清空容器所有数据元素d.clear();Fun_Print(d); // }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }6. deque 数据存取 功能描述 对deque 中的数据的存取操作 函数原型 1、at(int idx); 返回索引idx所指的数据 2、operator[]; 返回下标idx所指的数据 3、front(); 返回容器中第一个数据元素 4、back(); 返回容器中最后一个数据元素 // deque双端数组容器数据存取#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件dequevoid test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;for (int i 0; i 10; i){// push_back()向容器尾部插入数据id.push_back(i);}// 1、at()返回容器索引i所指的数据元素for (int i 0; i d.size(); i) { // size()返回容器数据元素个数cout d.at(i) ; // 0 1 2 3 4 5 6 7 8 9}cout endl;// 2、[]返回容器下标i所指的数据元素for (int i 0; i d.size(); i) {cout d[i] ; // 0 1 2 3 4 5 6 7 8 9}cout endl;// 3、front()返回容器的第一个数据元素cout d容器的第一个数据元素为 d.front() endl; // 0// 4、front()返回容器的最后一个数据元素cout d容器的最后一个数据元素为 d.back() endl; // 9 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }7. deque 排序 功能描述 利用算法实现对deque容器进行排序 算法 sort(iterator beg, iterator end) 对beg和end区间内元素进行排序 // deque双端数组容器排序#include iostream // 包含标准输入输出流头文件 using namespace std; // 使用标准命名空间#include deque // 使用deque双端数组容器需包含头文件deque #include algorithm // 标准算法头文件使用sort需包含头文件algorithm// const对此容器只是只读不可以修改 void Fun_Print(const dequeint d) { // 使用引用方式传入dequeint类型的形参d// dequeint::iterator 拿到dequeint这种容器的迭代器类型每个容器都有一个专属的迭代器类型// const_iterator只读迭代器iterator普通迭代器for (dequeint::const_iterator it d.begin(); it ! d.end(); it) {//*it 100; // 报错容器中数据不可修改表达式必须是可修改的左值cout *it ; // it是个迭代器类型本是是个指针需使用*解引用}cout endl; }void test() {// 创建deque容器对象并且通过模板参数指定容器中存放的数据的类型dequeint d;// push_back()向容器尾部插入数据d.push_back(80);d.push_back(20);d.push_back(40);d.push_front(10);d.push_front(90);d.push_front(50);Fun_Print(d); // 50 90 10 80 20 40// sort()排序默认排序规则从小到大升序// 对于支持随机访问的迭代器的容器都可以利用sort算法直接对其进行排序vector容器也可以利用sort进行排序sort(d.begin(), d.end());Fun_Print(d); // 10 20 40 50 80 90 }int main() {test();system(pause); // 相当于在本地 Windows 调试器中的请按任意键继续...暂停方便看清楚输出结果return 0; // 程序正常退出 }总结 1、deque 容器和 vector 容器的构造方式几乎一致灵活使用即可 2、deque 赋值操作也与 vector 相同 3、deque 没有容量的概念 4、deque 判断是否为空 — empty 5、deque 返回元素个数 — size 6、deque 重新指定个数 — resize 7、deque 插入和删除提供的位置是迭代器 8、deque尾插 — push_back 9、deque 尾删 — pop_back 10、deque 头插 — push_front 11、deque 头删 — pop_front 12、除了用迭代器获取deque容器中元素[ ]和at也可以 13、front() 返回容器第一个元素 14、back() 返回容器最后一个元素 15、sort() 算法非常实用使用时包含头文件 algorithm即可。
http://www.dnsts.com.cn/news/245155.html

相关文章:

  • 大安市建设局网站长沙哪里做网站好
  • 17网站一起做网店增城郑州网站建设技术托管
  • sketch可以做网站交互么如何规避电子政务网站建设教训
  • 南宁建网站必荐云尚网络wordpress刷留言
  • 石家庄网站建设雨点牛游戏网站制作
  • 可做易企秀的网站园区网互联及网站建设项目
  • 浅谈学校网站建设代理赚钱
  • 昆明学院网站建设与维护试题免费注册网站域名可以用吗
  • 和龙建设局网站如何自己做资源网站
  • 中国人做英文网站崇州市微信端网站建
  • 上饶网站制作需要多少钱设计公司起名网
  • 网站小图标素材cms站群管理系统
  • 如何用 ftp上传网站厦门工商网站查询企业信息
  • 网站建设有哪些方面wordpress主页 摘要
  • 南充市房地产网官方网站西安网站建设公司
  • 上海整形网站建设做网站 钱
  • 做视频网站免费观看爱网络维保
  • 网站建设用什么视频播放器网站域名被黑
  • 课程网站建设开题报告维护网站要做哪些工作
  • 动漫网站怎么建设中信建设有限责任公司招聘
  • 网站视频背景怎么做展厅效果图 展厅设计图片
  • pc网站建设高端展馆展厅设计方案
  • 网站建设与管理答案做标书有哪些好网站
  • 婚庆网站策划免费申请个人邮箱
  • 二手交易网站开发方式wordpress清缓存
  • 郑州做网站 哪家好游戏网站开发协议
  • 购物网站开发项目意义wordpress手机接口
  • h5制作网站公司按钮特效网站
  • 大型营销型网站制作峡江网站建设
  • 医院门户网站建设方案wordpress导航栏去掉