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

整站seo技术济南做网站知识

整站seo技术,济南做网站知识,天津哪里做网站,百度2018旧版下载deque插入和删除 功能描述: 向deque容器中插入和删除数据 函数原型: 两端插入操作: push_back(elem); //在容器尾部添加一个数据 push_front(elem); //在容器头部插入一个数据 pop_back(); //删除容器最后一个数据 pop_front(); //删除容器…

deque插入和删除

功能描述:
向deque容器中插入和删除数据

函数原型:
两端插入操作:

push_back(elem); //在容器尾部添加一个数据
push_front(elem); //在容器头部插入一个数据
pop_back(); //删除容器最后一个数据
pop_front(); //删除容器第一个数据

指定位置操作:

insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem); //在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end); //在pos位置插入[beg,end)区间的数据,无返回值。
clear(); //清空容器的所有数据
erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos); //删除pos位置的数据,返回下一个数据的位置。
#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(30);d1.push_front(40);printDeque(d1);//尾删d1.pop_back();printDeque(d1);//头删d1.pop_front();printDeque(d1);
}void test02()
{deque<int>d1;d1.push_back(10);d1.push_back(20);d1.push_front(30);d1.push_front(40);printDeque(d1);//insert插入d1.insert(d1.begin(), 80);printDeque(d1);d1.insert(d1.begin(),2, 90);printDeque(d1);//按照区间进行插入deque<int>d2;d2.push_back(1);d2.push_back(2);d2.push_front(3);d1.insert(d1.begin(), d2.begin(), d2.end());printDeque(d1);
}void test03()
{deque<int>d1;d1.push_back(10);d1.push_back(20);d1.push_front(30);d1.push_front(40);printDeque(d1);//删除deque<int>::iterator it = d1.begin();it++;d1.erase(it);printDeque(d1);//按区间方式删除d1.erase(d1.begin(), d1.end());//d1.clear();printDeque(d1);
}int main()
{test01();cout << endl;test02();cout << endl;test03();return 0;
}

在这里插入图片描述
这里有个坑需要避一下,就是当重复执行d1.erase(it);后程序运行会崩溃。

崩溃的原因是在执行d1.erase(it)之后,迭代器it失效了,不能再继续使用。在C++的STL中,当执行erase操作后,如果要继续使用迭代器进行遍历或删除元素,需要重新获取合法的迭代器。因此,连续两次执行d1.erase(it)会导致第二次的删除操作使用了一个已经无效的迭代器,从而产生错误。
要解决这个问题,可以在执行d1.erase(it)之后,重新获取合法的迭代器,再进行下一次的删除操作。以下是修改后的代码:

// 删除
deque<int>::iterator it = d1.begin();
it++;
d1.erase(it);// 重新获取合法的迭代器
it = d1.begin();
it++;
d1.erase(it);printDeque(d1);

这样修改后,就不会报错了。

总结:
插入和删除提供的位置是迭代器!
尾插-push_back
尾删-pop_back
头插-push_front
头删-pop_front

deque数据存取

功能描述:
对deque中的数据的存取操作
函数原型:

at(int idx); //返回索引idx所指的数据
operator[]; //返回索引idx所指的数据
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(40);d.push_front(50);d.push_front(60);//通过[]方式访问元素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();return 0;
}

在这里插入图片描述
总结:
除了用迭代器获取deque容器中元素,[]和at也可以
front返回容器第一个元素
back返回容器最后一个元素

deque排序

功能描述:
利用算法实现对deque容器进行排序
算法:

sort(iterator beg,iterator end) //对beg和end区间内元素进行排序
#include<iostream>
using namespace std;
#include<deque>
#include<algorithm>#include<vector>//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(40);d.push_front(50);d.push_front(60);printDeque(d);//排序deque<int>::iterator it1 = d.begin();++it1;deque<int>::iterator it2 = d.end();--it2;cout << "排序后:" << endl;sort(it1, it2);printDeque(d);cout << "vector排序:" << endl;vector<int>v;v.push_back(5);v.push_back(2);v.push_back(4);v.push_back(7);sort(v.begin(), v.end());for (vector<int>::const_iterator it = v.begin(); it != v.end(); it++){cout << *it << " ";}cout << endl;
}int main()
{test01();return 0;
}

在这里插入图片描述

对于支持随机访问的迭代器的容器,都可以利用sort算法直接对其进行排序,vector容器也可以利用sort进行排序。

http://www.yayakq.cn/news/715480/

相关文章:

  • 用源码做网站阿里云服务器开源做几个网站
  • 天津网站建设好公司手机表格制作app
  • 制作网站难不难网站建设技术经理岗位职责
  • 默认网站停止wordpress调用媒体库
  • 酒店电子商务网站策划书网站建设不要摸板
  • 学习怎样建网站医院网站云服务器配置
  • 三五互联网站后台wordpress小黄锁
  • 官渡网站建设深圳软件外包公司排行榜
  • 贵阳网站定制工业和信息化部电子第五研究所
  • 房产类网站建设费用网站公司怎么做推广
  • 哈尔滨网站建设哪家好甘肃省住房和城乡建设厅网站职称证查询
  • 一些你不知道的网站网站开发经典案例
  • 织梦技术个人网站模板女生做新媒体运营是不是很累
  • 网站建设盈利模式电子商务网站建设与推广实务
  • 网站开发及维护是什么简单网站建设软件
  • 微信转账做网站收款网站备案主体空壳
  • 设计师用的素材网站有哪些开网站做家政
  • 网站建设所采用的技术设置备份管理wordpress
  • 白水网站建设网络营销策划是指
  • 廊坊建站模板系统定制小程序多少钱
  • 新冠三阳最新消息百度搜索关键词排名优化技术
  • 网站建设报价 下载安徽网站设计定制
  • 网站模板开发唐山网站主页制作
  • 公司移动网站建设实时seo排名点击软件
  • 网站地图怎么做_太平洋网站建设
  • 云南做企业网站多少钱网站模板 html
  • 云南网站建设网站运营html5新增标签有哪些
  • 电气网站开发网站上的支付接口怎么做
  • 福州最好的网站建设服务商软件公司简介内容怎么写
  • 北京网站建设制作案例免费软件下载网站哪个好