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

海外营销网站广西金利建设有限公司网站

海外营销网站,广西金利建设有限公司网站,求大哥给个狼站2022,模板板网站纵有疾风起#xff0c;人生不言弃。本文篇幅较长#xff0c;如有错误请不吝赐教#xff0c;感谢支持。 #x1f4ac;文章目录 一.deque容器的基本概念二.deque容器常用操作①deque构造函数②deque元素操作③deque赋值操作④deque交换操作⑤deque大小操作⑥deque插入和删除… 纵有疾风起人生不言弃。本文篇幅较长如有错误请不吝赐教感谢支持。 文章目录 一.deque容器的基本概念二.deque容器常用操作①deque构造函数②deque元素操作③deque赋值操作④deque交换操作⑤deque大小操作⑥deque插入和删除 一.deque容器的基本概念 vector容器是单向开口的连续内存空间deque[dek]则是一种双向开口的连续线性空间。所谓的双向开口意思是可以在头尾两端分别做元素的插入和删除操作可以理解为数据结构的双端队列。当然vector容器也可以在头尾两端插入元素但是在其头部操作效率奇差全部元素都要后移无法被接受。 ✅deque容器和vector容器的差异 ①deque是双端队列可在容器的头部和尾部插入或删除元素。②deque没有容量的概念因为它是动态的以分段连续空间组合而成随时可以增加一段新的空间并链接起来换句话说deque不会像vector那样”旧空间不足而重新配置一块更大空间然后复制元素再释放旧空间”这样的事情在deque身上是不会发生的。deque可以随时将空间串接在首部或尾部也因此deque没有必须要提供所谓的空间保留(reserve)功能。 ✅deque容器内部实现原理 deque容器在逻辑上是一片连续的空间但这只是一种假象实际deque是由一段一段的定量的连续空间构成。一旦有必要在deque前端或者尾端增加新的空间便配置一段连续定量的空间串接在deque的头端或者尾端。deque最大的工作就是维护这些分段连续的内存空间的整体性的假象并提供随机存取的接口避开了1重新配置空间申请更大空间 (2)原数据复制新空间 (3)释放原空间三步骤代价就是复杂的迭代器架构。 既然deque是分段连续内存空间那么就必须有中央控制维持整体连续的假象。deque内部存在中央控制器记录与维护每段数据缓冲区存储数据的空间的内存地址缓冲区中存储真实数据保证可从容器的头部与尾部插入或删除元素。缓冲区才是deque的存储空间主体。 deque容器的迭代器 支持随机访问的迭代器可跳跃式访问容器元素。 二.deque容器常用操作 ①deque构造函数 作用创建deque容器。 注使用deque容器时需包含头文件#include deque 函数原型解释dequeT deq T;默认构造形式显示实例化deque(beg, end);构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem);有参构造函数使用n个elem元素进行初始化。deque(const deque deq);拷贝构造函数使用已有deque对象初始化新的对象。 实例deque构造函数 #include iostream using namespace std; #include deque//包含头文件 void printdeque(const dequeint deq)//形参使用const避免被修改 { //const_iterator只读迭代器for (dequeint::const_iterator it deq.begin(); it ! deq.end(); it){cout *it|;}cout endl; } void test() {dequeint v1 { 1,2,3 };//采用模板实现类实现显示实例化默认构造函数dequeint v2(6, 1);//构造函数将n个elem拷贝给本身。int arr[10] { 1,2,3,4,5,6,7,8,9,10 };dequeint v3(arr, arr sizeof(arr) / sizeof(arr[0]));//将v[begin(), end())区间中的元素拷贝给本身dequeint v4(v1);//拷贝构造函数拿另一个vector对象初始化本身printdeque(v1);printdeque(v2);printdeque(v3);printdeque(v4); } int main() {test();return 0; }②deque元素操作 作用通过重载赋值运算符operator[]和成员函数at(int index)对deque容器的单个元素进行读作为右值或写作为左值。 函数原型解释T operator[](size_t n);通过[]访问元素如果越界不抛异常程序直接挂掉T at(size_t n);通过at方法获取下标为n的元素如果n越界抛出out_of_range异常。T *data();返回容器中动态数组的首地址。const T *data() const;返回容器中动态数组的首地址。T front();返回第一个元素。T back();返回最后一个元素。 ③deque赋值操作 作用通过重载赋值运算符operator和成员函数assign()对deque容器进行赋值。 函数原型解释assign(beg, end);拷贝目标deque容器中[begin(), end())区间的元素对当前deque容器赋值。assign(n, elem);将n个elem拷贝赋值给本身。dequeoperator(const deque deq);重载等号操作符swap(deq);将deq与本身的元素互换 实例deque赋值操作 #include iostream using namespace std; #include deque//包含头文件 void printdeque(const dequeint deq)//形参使用const避免被修改 { //const_iterator只读迭代器for (dequeint::const_iterator it deq.begin(); it ! deq.end(); it){cout *it|;}cout endl; } void test() {dequeint deq;//尾插法插入元素for (int i 0; i 5; i) {deq.push_back(i);}//遍历printdeque(deq); //0 1 2 3 4/* 1.重载运算符赋值 */dequeint d1;d1 deq;printdeque(d1); //0 1 2 3 4/* 2.assign()函数区间拷贝 */dequeint d2;d2.assign(deq.begin(), deq.end());printdeque(d2); //0 1 2 3 4/* 3.assign()函数n个elem元素赋值 */dequeint d3;//5个整型元素6d3.assign(5, 6);printdeque(d3); //6 6 6 6 6 } int main() {test();return 0; }④deque交换操作 表格一览 函数原型解释void swap(deque deq);把当前容器与deq交换。 实例deque交换操作 #include iostream using namespace std; #include deque//包含头文件 void printdeque(const dequeint deq)//形参使用const避免被修改 { //const_iterator只读迭代器for (dequeint::const_iterator it deq.begin(); it ! deq.end(); it){cout *it|;}cout endl; } void test() {dequeint deq;//尾插法插入元素for (int i 0; i 5; i) {deq.push_back(i);}//遍历printdeque(deq); //0 1 2 3 4dequeint d1;d1.swap(deq);//将deq与本身的元素互换printdeque(d1); } int main() {test();return 0; }⑤deque大小操作 作用操作deque容器的大小即元素个数。 函数原型解释bool empty() const;判断容器是否为空。size_t size() const;返回容器的实际大小已使用的空间。resize(int num)重新指定容器的长度为num。若容器变长则以默认值0填充新位置若容器变短则容器末尾超出新长度的元素被删除。resize(int num, elem);重新指定容器的长度为num。若容器变长则以指定值elem填充新位置若容器变短则容器末尾超出新长度的元素被删除。 实例deque大小操作 #include iostream using namespace std; #include deque//包含头文件 void printdeque(const dequeint deq)//形参使用const避免被修改 { //const_iterator只读迭代器for (dequeint::const_iterator it deq.begin(); it ! deq.end(); it){cout *it|;}cout endl; } void test() {dequeint deq;//尾插法插入元素for (int i 0; i 5; i) {deq.push_back(i);}printdeque(deq); //0 1 2 3 4//empty()判断容器是否为空cout (deq.empty() ? deq为空 : deq不为空) endl; //deq不为空//size(); 获取容器的大小即元素个数。cout deq的大小/元素个数 deq.size() endl; //5//resize(int num);重新指定容器的长度为num//若容器变长则以默认值0填充新位置若容器变短则容器末尾超出新长度的元素被删除。deq.resize(10); //长度变大时使用默认值0填充printdeque(deq); //0 1 2 3 4 0 0 0 0 0deq.resize(3); //长度变小时容器末尾超出新长度的元素被删除printdeque(deq); //0 1 2//resize(int num, elem); 重新指定容器的长度为num。//若容器变长则以指定值elem填充新位置若容器变短则容器末尾超出新长度的元素被删除。deq.resize(8, 6); //长度变大时使用指定值6填充printdeque(deq); //0 1 2 6 6 6 6 6} int main() {test();return 0; }注deque容器不存在容量的概念即不存在capacity()成员函数。可随时开辟缓冲区存储数据。 ⑥deque插入和删除 表格一览 函数原型解释iterator insert(iterator pos, const T ele);在指定位置插入一个元素ele 返回指向插入元素的迭代器。iterator insert(const_iterator pos, int count,ele);迭代器指向位置pos插入count个元素ele.返回指向插入元素的迭代器。void push_front(const T ele);在容器头部插入一个数据void push_back(const T ele);尾部插入元素elevoid pop_front();删除容器第一个数据void pop_back();删除最后一个元素void clear();清空容器。iterator erase(const_iterator start, const_iterator end);删除迭代器从start到end之间的元素返回下一个有效的迭代器。iterator erase(const_iterator pos);删除迭代器指向的元素返回下一个有效的迭代器。 实例deque插入和删除 #include iostream using namespace std; #include deque//包含头文件 void printdeque(const dequeint deq)//形参使用const避免被修改 { //const_iterator只读迭代器for (dequeint::const_iterator it deq.begin(); it ! deq.end(); it){cout *it|;}cout endl; } void test() {dequeint v;for (int i 0; i 5; i){v.push_back(i 1);//尾部插入元素}printdeque(v);//1 2 3 4 5v.insert(v.begin() 1, 2, 100);//在第二个元素插入2个100printdeque(v);//1 100 100 2 3 4 5v.pop_front();//头部删除一个元素v.pop_back();//尾部删除一个元素printdeque(v);//100 100 2 3 4cout ------------- endl;v.erase(v.begin());//删除第一个元素printdeque(v);//100 2 3 4dequeint::const_iterator it v.erase(v.begin() 1, v.end() - 1);//删除从第二个元素到倒数第二个元素返回下一个有效迭代器printdeque(v);//100 4v.insert(it, 66);printdeque(v);//100 66 4v.clear();//清空容器 } int main() {test();return 0; }
http://www.pierceye.com/news/1069/

相关文章:

  • 商城网站建设基础设计房地产行业市场分析
  • 晋中城市建设招标网站拉新充场app推广平台
  • 莆田自助建站软件站长工具端口扫描
  • 响应式网站优势网站建设方案 pdf
  • 爱站工具包的模块自适应网站制作费用
  • 福州做网站的公建设人才服务中心
  • 查看网站域名现在做网站用什么
  • 网站申请服务器空间网站建设网页
  • 邯郸哪做网站优化网站聊城
  • 淘客网站如何做推广金融互助网站开发
  • 京东企业的电子网站建设武威做网站
  • 网站建设与管理学校微信推广软件
  • 站酷魔方网站建设中外贸品牌推广公司
  • 平台网站模板 优帮云php做视频网站源码
  • 做百度推广是不是得有个网站先网站制作动态转静态怎么做
  • 部队网站源码怎样注册小程序
  • 房地产网站建设报价大学生创业计划书完整版
  • 可以做思维导图的网站打开网站显示404
  • 昆明做网站优化公司企业宣传片模板免费
  • 重庆响应式网站多少钱做医疗信息网站的域名
  • 苏州企业网站建设开发与制作wordpress 主题 图片
  • 成都建网站要多少钱医院管理系统
  • 杭州做网站下沙有哪些做婚品的网站
  • 免费个人电子版简历下载网站代码优化的方法
  • 电商网站建设试题单纯做网站的公司
  • 网站怎么做才算精致用flash做网站
  • 下载一个网站的源码下载建设官方网站企业网银登录
  • 做个兼职网站设计怎么给网站图片加alt
  • 建设银行 上海科技中心网站宣城网站建设公司
  • seo网站打开慢打开网站弹出视频js