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

网站建立的研究方案龙岩天宫山有开放吗

网站建立的研究方案,龙岩天宫山有开放吗,珠海九洲旅游开发公司,寻求一个专业网站制作公司目录 list的使用构造函数和赋值重载迭代器(最重要)容量相关插入删除元素操作reversesortuniqueremovesplice list的底层实际是双向链表结构 list的使用 构造函数和赋值重载 构造函数说明list()无参构造list (size_type n, const value_type val value_type())构造的li… 目录 list的使用构造函数和赋值重载迭代器(最重要)容量相关插入删除元素操作reversesortuniqueremovesplice list的底层实际是双向链表结构 list的使用 构造函数和赋值重载 构造函数说明list()无参构造list (size_type n, const value_type val value_type())构造的list中包含n个值为val的元素list (const list x)拷贝构造函数list (InputIterator first, InputIterator last)用[first, last)区间中的元素构造list 构造函数和前面的容器用法相同 void test1() {listint lt1;//无参构造listint lt2(10, 1);//1,1,1,1,1,1,1,1,1,1listint lt3(lt2);//拷贝构造listint lt4(lt2.begin(), lt2.end()); }赋值重载 list operator (const list x);void test1() {listint lt1;//无参构造listint lt2(10, 1);//1,1,1,1,1,1,1,1,1,1listint lt3(lt2);//拷贝构造listint lt4(lt2.begin(), lt2.end());listint lt5;lt5 lt4;//赋值重载 }迭代器(最重要) 迭代器类型分为三种单向迭代器、双向迭代器、随机迭代器 单向迭代器支持          例如forward_list、哈希的迭代器类型是单向迭代器 双向迭代器支持- -      例如list、map、set的迭代器类型是双向迭代器 随机迭代器支持- --   例如vector、string、deque的迭代器类型是随机迭代器 随机迭代器可以认为是特殊的双向迭代器双向迭代器可以认为是特殊的单向迭代器 list的迭代器与vector和string不同 迭代器的类型是与容器底层结构决定的 vector和string的底层是连续的所以它们的迭代器实际上就是指针所以它们支持–- 类型是随机迭代器 而list的底层是不连续的前后是通过指针连接在一起的所以它的迭代器不是指针(实际上是指针经过封装)经过封装后迭代器会支持、- -类型是单向迭代器 对于不支持,-这样封装是因为像it.begin()5这样的效率太低C不支持 list的迭代器不支持像vector中的it.begin()5如果这样写会报错 只支持,-- void test2() {listint lt{ 1,2,3,4,5,6 };lt.begin()--;lt.begin(); }如果想将list的迭代器像vector中it.begin()5一样移动多个位置只能这样 void test2() {listint lt{ 1,2,3,4,5,6 };listint::iterator it lt.begin();for (size_t i 0; i 5; i){it;} }剩下的list迭代器也支持之前的函数用法也相同 容量相关 empty bool empty() const;判断容器是否为空 size size_type size() const;返回容器中元素的个数 插入删除 list作为双向循环链表头插头删尾插尾删的效率都很高所以list中都支持这些操作 函数说明void push_front (const value_type val);在list首元素前插入值为val的元素void pop_front();删除list中第一个元素void push_back (const value_type val);在list尾部插入值为val的元素void pop_back();删除list中最后一个元素 void test3() {listint lt{ 1,2,3,4,5,6 };lt.push_back(10);lt.push_front(0);lt.pop_back();lt.pop_front(); }insert iterator insert (iterator position, const value_type val);void insert (iterator position, size_type n, const value_type val);template class InputIteratorvoid insert (iterator position, InputIterator first, InputIterator last);insert的操作和vector中的用相同但是这个insert不会导致迭代器失效 因为链表的插入必须要扩容迭代器是指向某一个节点插入后迭代器还是指向原先的节点不会导致失效 erase iterator erase (iterator position); iterator erase (iterator first, iterator last);erase 的操作和vector中的用相同这个erase 会导致迭代器失效 迭代器是指向某一个节点删除这个节点后迭代器失效 元素操作 reverse void reverse();这个reverse是list类中自带的一个函数作用是逆置链表 而algorithm中也有一个reverse函数 reverse函数中迭代器类型是双向迭代器而list的迭代器类型就是双向迭代器所以list也可以使用algorithm中的reverse void test4() {listint lt{ 1,2,3,4,5,6 };lt.reverse();reverse(lt.begin(), lt.end()); }sort void sort();作用是排序底层是归并 algorithm中也有sort函数但是对于list来说想要排序只能使用list库中的sort函数不能使用algorithm中也有sort 因为list的迭代器类型是双向迭代器而algorithm中的sort的参数迭代器的类型是随机迭代器所以list不能使用algorithm中的sort函数。 其实这里的sort意义不大因为相对于algorithm中的sort效率低(list中的sort底层使用的是归并algorithm中的sort使用的是快排) 而唯一的意义是方便数据量小了可以拍但是数据量再大就不要使用list中的sort了 如果想要排序完全可以把list中的数据拷贝到vector中然后排vector排序完之后再把数据拷贝会list中 void test5() {listint lt{ 5,7,3,9,1,0,4,7,8,9,4, };vectorint v;//将数据从list拷贝到vectorfor (auto e : lt){v.push_back(e);}//在vector中排序reverse(v.begin(), v.end());//再把数据从vector拷贝到list中for (auto e : v){lt.push_back(e);} }unique void unique();作用是去重但是需要先排序 void test6() {listint lt{2,6,5,2,2,2,2};lt.sort();lt.unique();// 5,6 }remove void remove (const value_type val);remove的作用是先找到所有val的位置然后erase掉所有的val void test6() {listint lt{1,2,3,4,5,6,6,7,8};//移除元素6lt.remove(6);//1,2,3,4,5,7,8 }splice void splice (iterator position, list x);void splice (iterator position, list x, iterator i);void splice (iterator position, list x, iterator first, iterator last);splice的作用是转移节点 void splice (iterator position, list x)将x链表中的所有元素转移到position位置void splice (iterator position, list x, iterator i)将x链表中i位置的元素转移到position位置void splice (iterator position, list x, iterator first, iterator last)将x链表中[first,last)中的元素转移到position位置 void test7() {listint lt1{ 1,2,3,4,5,6,7 };listint lt2{ 0,0 };lt2.splice(lt2.begin(), lt1);for (auto e : lt1){cout e ;}//lt1中的元素转移空了cout endl;for (auto e : lt2){cout e ;}//0 1 2 3 4 5 6 7 0cout endl;listint lt3{ 1,2,3,4,5,6,7 };listint lt4{ 0,0 };lt4.splice(lt4.begin(), lt3, lt3.begin());for (auto e : lt3){cout e ;}//1 3 4 5 6 7cout endl;for (auto e : lt4){cout e ;}//0 2 0cout endl;listint lt5{ 1,2,3,4,5,6,7 };listint lt6{ 0,0 };lt6.splice(lt6.begin(), lt5,lt5.begin(), --lt5.end());for (auto e : lt5){cout e ;}//1 2 7cout endl;for (auto e : lt6){cout e ;}//0 3 4 5 6 0cout endl; }
http://www.hkea.cn/news/14398504/

相关文章:

  • 江门专业网站建设报价网站怎样做快照
  • 做视频网站用网站空间还是服务器手机电影网站怎样做
  • 专业房产网站建设苏州做外贸网站
  • 财务软件免费深圳网络优化培训
  • 那种广告式网站怎么做药检局信息化网站系统建设方案
  • 深圳做小程序网站开发宣传方案模板
  • 网站后台编辑技巧更改wordpress小工具的样式
  • 北京网站建设那些窗帘网站建设策划书道客巴巴
  • 成都公司建站模板采购销售管理软件
  • 福州公司网站建设wordpress后台添加新的文章类别
  • 朔州做网站公司苏州vr全景网站建设公司
  • 东莞海天网站建设在线网页代理太太猫
  • 建设银行信用卡网站查询如何让wordpress id连续
  • 济南做企业网站的公司张家港做网站优化排名
  • 教育培训网站建设ppt模板重庆网站建设yunhuit
  • 自己建的网站能赚钱吗网站托管运营
  • 做网站开发多少钱广州公共资源交易中心官网
  • 忘记php网站后台密码青柠海报设计网站
  • 网站开发支付宝二维码支付做网站优化企业
  • 青岛网站建设加盟公司lovevideo门户视频wordpress主题
  • 网站建设演讲稿旅游网站的建设背景
  • 网站建设制作的规划方案wordpress 最新发展
  • 苏州哪里做网站好如何在网站申请做co
  • 网站镜像 cdn河北建设厅网站设置
  • 微网站做的比较好云服务器上建网站
  • 互联网网站建设彭聪家装装饰设计
  • 网站挑错济宁网站建设公司
  • 水果零售电子商务网站综合评价与建设研究广州市车管所网站建设
  • 做网站公司(信科网络)自动化毕设题目网站开发
  • 做商贸生意的人都去什么网站最新网站建设技术