首页 > 其他分享 >4月9日list的实现

4月9日list的实现

时间:2023-04-09 22:45:20浏览次数:39  
标签:迭代 实现 list 构造 构造函数 节点 指针

首先list不同于string和vector他是链式结构,所以需要对他的每个节点自定义.并且每个节点要包含上或下节点的指针.因为struct在c++中升级成了类所以她也需要几大默认函数,但同时他也适用结构体.于是图片中对节点进行了声明和完成了构造函数.

完成了list节点的构造就要开始list类的成员函数和成员变量了.这里有好几层构造,先是_list_node的构造然后才是list中节点的构造,感觉这里的思想很重要,接下来是实现头插的部分,按照循环链表的基本步骤来,

接下来是比较特殊的地方,迭代器,list的迭代器需要另建一个类,

这个类其中的成员变量是_list_node类型也就是和list中节点的类型相同,用于接收list的begin和end位置的指针,但是迭代器不一定都是指针.既然迭代器是一个类那么她就要有成员变量和构造函数,之后在实现他其中的一些运算符重载,

最后加强记忆:函数传参时一定要考虑加引用和加const,这个很有用,可以避免不必要的麻烦.

tips:当使用类模板时无论什么时候类后面都要用<>来显示类中的元素,

 

标签:迭代,实现,list,构造,构造函数,节点,指针
From: https://www.cnblogs.com/qjwxlj/p/17301338.html

相关文章

  • 线性表之单循环链表实现
    main.cpp#include"SCList.h"intmain(){Listmylist;InitList(mylist);intselect=1;ElemTypeItem;Node*p=NULL;while(select){printf("************************************\n");printf("......
  • Collection - LinkedList源码解析
    简介:LinkedList集合底层是一个双向链表结构,具有增删快,查询慢的特点,内部包含大量操作首尾元素的方法。适用于集合元素先入先出和先入后出的场景,在队列源码中被频繁使用。链表结构的节点新增、删除都非常简单,仅仅把前后节点的指向修改下就好了,所以LinkedList新增和删除速度很......
  • 优化Spring MVC消息转换器实现精度和时间转换
    重写ObjectMapper/***对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象*将JSON解析为Java对象的过程称为[从JSON反序列化Java对象]*从Java对象生成JSON的过程称为[序列化Java对象到JSON]*/publicclassJacksonObjectMapperextendsObjectMapper{......
  • kafka怎么实现高可用性
    Kafka是一个分布式的消息系统,为了保证高可用性,需要采取以下措施:集群架构:Kafka通过分布式的方式来实现高可用性。一个Kafka集群通常包含多个Broker,每个Broker负责存储一部分的数据副本,这样即使某个Broker出现故障,其他Broker也可以继续工作。数据冗余:Kafka通过数......
  • axios写了前端,如何从后台获取到List列表数据(涉及到JSON)
    问题描述我将前端写完之后,一直没有理解axios后台的写法,导致进度一直拖慢,这里我就来叙述一下我后来是怎么写出后台代码的吧,或者说,这样的后台代码是怎么写出来的!问题解决经过友友的点拨,这里就需要将我们的list数据转换成json数据;然后将转换好的json数据传到axios写出来的html页......
  • 如何在微信小程序中实现音视频通话
    微信小程序的音视频通话可以通过微信提供的实时音视频能力实现。这个能力包括了音视频采集、编码、传输和解码等多个环节,开发者只需要使用微信提供的API接口就可以轻松地实现音视频通话功能。在具体实现上,开发者需要先在微信开放平台上注册并创建小程序,然后在小程序中集成微信......
  • 协同文档:OT与CRDT实现协同编辑笔记
    讲协同编辑,先回顾下从BBS、邮件,到IM信息的异步传播信息的生产和消费异步发生。典型的场景如论坛,博客,文档库,邮件。我在写这篇文档的时候,你们看不到。你们看的时候,我早已写完。异步场景下,信息的生产者会谨慎的推敲措辞,以确保自己的意思被准确的传达。表达方式的丰富性很重要,除了......
  • 调用百度云api实现人脸库注册代码展示
    #encoding:utf-8importbase64importrequestsdefgetToken():ak='B7E2OqVuDAyDs7OsuGPuKa4y'sk='idObOz6jqA2GdU49L2VG4VPVhgmiidvD'host=f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&cli......
  • internet域名架构的实现
    环境根域:192.168.3.109com服务器:192.168.3.110hxg.com服务器主:192.168.3.108​ 从:192.168.3.107apache主机(www.hxg.com):192.168.3.104转发服务器:192.168.3.101本地DNS服务器:192.168.3.102测试客户端:192.168.3.103配置www.hxg.com主机安装apache$y......
  • 实现智能CDN 的DNS服务
    注意acl规则一定是在options前面的有了view,就不能再单独使用zone修改主配置文件vim/etc/named.conf#acl规则一定是在options前面的aclbeijinacl{ 192.168.3.0/24; #根据ip地址不同,分成不同的规则};aclshanghaiacl{ 192.168.2.0/24;};aclotheracl{ any......