💬 hello! 各位铁子们大家好哇。 今日更新了list的相关内容 🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝
list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。
因为list的空间不是连续的,不能用原生指针,必须对其进行封装。
当数据是自定义类型时,想通过->访问,就必须重载。
用const迭代器,需要重新弄一个类,而const迭代器跟普通迭代器基本一样,只修改了部分,如果为此就重新弄一个类,代码就太冗余了。
下面是进行的优化:
本质相当于写了一个类模板,编译器实例化生成了两个类。
反向迭代器的++就是正向迭代器的--,反向迭代器的--就是正向迭代器的++,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行 包装即可。