4月9日list的实现

Posted on 2023-04-09 22:37  玄灵镜  阅读(22)  评论(0)    收藏  举报

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

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

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

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

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

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

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3