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

网站登录页面空白手机免费网站空间

网站登录页面空白,手机免费网站空间,seo5,网站整体策划与设计目录 一、list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 iterator的使用 1.2.3capacity#xff08;容量相关#xff09; 1.2.4 element access#xff08;元素访问#xff09; 1.2.5 modifiers#xff08;链表修改#xff09;…目录 一、list的介绍及使用 1.1 list的介绍  1.2 list的使用  1.2.1 list的构造  1.2.2  iterator的使用  1.2.3capacity容量相关  1.2.4  element access元素访问  1.2.5 modifiers链表修改  1.2.6 operation对链表的一些操作  二、从功能角度迭代器分类  博客主页C-SDN花园GGbond ⏩ 文章专栏玩转c 一、list的介绍及使用 1.1 list的介绍  1.1 list的介绍 list 是可以在常数范围内在任意位置进行插入和删除的序列式容器并且该容器可以前后双向迭代。 list 的底层是双向链表结构双向链表中的每个元素存储在互不相关的独立节点中在节点中通过指针指向的前一个元素和后一个元素。 list 和 forward_list 非常相似最主要的不同在于 forward_list 是单链表只能朝前迭代已让其更简单高效。 与其它的序列式容器相比arry、vector、dequelist 通常在任意位置进行插入移除元素的执行效率更好。 与其它序列式容器相比list 和 forward_list 最大的缺陷是不支持任意位置的随机访问比如要访问 list 的第 5 个元素必须从已知的位置比如头部或者尾部迭代到该位置在这段位置上迭代需要线性的时间开销list 还需要一些额外的空间已保存每个节点的相关联信息。   1.2 list的使用  list文档 list 在实际中非常重要在实际中我们熟悉常用的接口就可以下面列出了需要我们重点掌握的接口。 1.2.1 list的构造  size_type 表示一个无符号整数类型value_type 是 list 的第一个模板参数也就是要存储的数据类型。使用迭代器区间的构造函数是函数模板只要是满足 Input 类型的迭代器都可以使用该构造函数。  1.2.2  iterator的使用  注意begin 与 end 为正向迭代器对迭代器执行 操作迭代器向后移动。rbegin 与 rend 为反向迭代器对迭代器执行 操作迭代器向前移动。由于 list 的底层物理空间并不连续所以 list 的迭代器不再是原生指针并且 list 的迭代器没有对 和 - 进行重载只重载了 和 – 因为空间不连续重载 会比较复杂。即 l.begin() 5 是不被允许的。 #includeiostream using namespace std; #includelist void print_list(listint lt) {listint::iterator it lt.begin();// 用迭代器方式打印l2中的元素while (it ! lt.end()){cout *it ;it;}cout endl;for (int e : lt) // C11范围for的方式遍历{cout e ;}cout endl;//反向迭代器listint::reverse_iterator rit lt.rbegin();while (rit ! lt.rend()){cout *rit ;rit;}cout endl; } void TestList1() {listint l1; // 构造空的l1listint l2(4, 100);// l2中放4个值为100的元素listint l3(l2.begin(), l2.end());// 用l2的[begin(), end()左闭右开的区间构造l3listint l4(l3);// 用l3拷贝构造l4int arr[] { 1,2,3,4,5,6 };listint l5(arr, arr sizeof(arr) / sizeof(arr[0])); // 以数组为迭代器区间构造l5listint l6{ 9,8,7,6 };// 列表格式初始化C11print_list(l1);print_list(l2);print_list(l3);print_list(l4);print_list(l5);print_list(l6); }int main() {TestList1();return 0; } 1.2.3capacity容量相关  void TestList2() {listint l1; // 构造空的l1listint l2(4, 100);// l2中放4个值为100的元素cout l1.size() endl;cout l2.size()endl;} int main() {TestList2();return 0; } 1.2.4  element access元素访问  1.2.5 modifiers链表修改  insert 插入元素并不会导致迭代器失效例如相较于 vector 中的 insertlist 中的 insert 并不会去扩容挪动数据而 vector 中的 insert 可能会进行扩容挪动数据最终导致迭代器失效。list 中的删除元素接口会导致迭代器失效失效的只有指向被删除节点的迭代器其他迭代器不会受到影响。 void TestList3() {listint l1; // 构造空的l1listint l2(4, 100);// l2中放4个值为100的元素cout l1.size() endl;cout l2.size()endl;l1.push_front(22);l1.push_front(11);print_list(l1);l2.insert(l2.begin(), 99);print_list(l2);listint::iterator it l2.begin();int k 3;while (k--){it;}l2.insert(it, 0);print_list(l2);l2.clear();print_list(l2);cout **********************; } int main() {TestList3();return 0; } 1.2.6 operation对链表的一些操作  splice() 函数主要用于在列表中进行元素的转移操作。 它可以将一个列表中的部分或全部元素转移到另一个列表中。可以指定要转移的元素范围以及目标插入位置等实现了高效灵活的元素移动和重组。  remove函数相当于一直遍历列表然后erase删除指定元素。  unique 函数主要用于移除列表中相邻的重复元素。它使得容器中只保留不重复的元素序列但需要注意的是它并不保证完全去除所有重复元素只是处理相邻的重复项通常也需要结合其他操作来实现完全去重。  merge()函数主要用于将两个已排序的序列合并成一个新的已排序序列。 它会按照排序顺序将一个序列中的元素与另一个序列中的元素合理地组合在一起形成一个合并后的有序序列。需要注意的是在合并之前两个源序列本身需要是已经排序好的。  链表逆置可以使用 list 自身的接口也可以使用算法库中的 reverse二者没有什么区别。链表排序只能使用 list 自身的 sort() 接口底层是利用归并排序不能使用算法库的 sort因为算法库中的 sort 底层是通过快排来实现的而快排中会涉及到三数取中需要迭代器 - 迭代器链表不能很好的支持。虽然链表提供了排序接口但是用链表对数据排序意义不大效率太低了更希望用 vector 来对数据进行排序。  二、从功能角度迭代器分类  迭代器类型功能单向InputIterator支持 双向BidirectionalItreator支持 /- -随机RandomAccessIterator支持 / - - / / - 其中 forward_list、unordered_xxx 都是单向迭代器list、map、set 都是双向迭代器vector、string、deque 都是随机迭代器。对迭代器的这种分类方式是由容器的底层结构来决定的。  算法库中也有一个sort()函数但是其支持的是随机迭代器而list是一种双向迭代器所以list无法调用算法库中的sort()。
http://www.dnsts.com.cn/news/134302.html

相关文章:

  • wordpress 播客网站建筑行业一般在哪个网站招聘
  • 网站建设开拓该行业的难点疑建设部标准定额研究所网站
  • 自己做的网站加载不出验证码建设科技网络网站的意义和目的
  • 网站如何做微信支付宝支付宝支付接口个人网站的设计与制作论文
  • 哪些做图片赚钱的网站奉贤区专业建网站
  • 长沙网站建设招聘开发一个app需要什么流程
  • 我想找个做代理的网站手机版网站怎么做
  • 网站建设的报价四川城乡建设厅网站
  • 宝安做网站公司乐云seo广告位
  • 连锁店 网站建设 中企动力广州小程序制作开发
  • 科技类网站源码建设网站联系方式
  • 专门做相声的网站做购物网站的公司
  • 上海珍岛做网站怎么样免费做app和网站的平台有哪些
  • 网站等保如何做鞍山58
  • 宿迁网站建设案例最权威的网站推广公司
  • 筹划电子商务网站建设自媒体是做什么的
  • 网站图片展示源代码做服装有哪些好的网站有哪些方面
  • 网站开发文档跨境电商网站开发
  • 网站的作用和意义公司建设哪个方便
  • 网站建设 商标wordpress ie兼容插件
  • seo哪里可以学平顶山网站关键词优化
  • 药品和医疗器械 网站备案wordpress 百度
  • 网站建设费账务处理百度网站建设策划书范文
  • wordpress主题 ux外贸网站seo公司排名
  • 网站建设改版升级黄石网站建设网络公司
  • 如何做好企业网站搜索引擎google
  • 快手刷评论推广网站网站开发后期要解决的问题
  • 帮别人做违法网站会判刑吗网站制作功能多少钱
  • 做外贸做的很好的网站seo泛站群
  • 多个网站对比表格怎么做微信公众平台申请注册入口