list和list中的注意事项
list
list的主流访问方式是迭代器。
sort排序,vector可以使用但list不行。因为他的底层是需要随机迭代器。
链表的排序方法有自己的排序模板sort。
大量的链表数据排序建议先拷贝到vector,使用vector排序,然后在拷贝回list。
去重复(前提是先排序。)
splice:转移,剪切。
可以进行链表内部单个位数的转移。
如果一个类有公有,有私有,用class;如果一个类几乎是都是公有,用struct。
链表的迭代器要进行封装。
全是内置类型时无法进行运算符重载(必须要有一个自定义类型),这个list中让全是内置类型的运算吧有了一种变相的重载方法。
要注意在在 operator->()
的实现中,不能将 &__node->_data
替换为 *__node->_data
,这里的&不是引用,而是取地址。
临时变量,匿名变量的const和正常的const不同,可以调用非静态成员函数,所以在list中begin可以++。
const迭代器:(不能是普通迭代器+const修饰。)类似const T(T可改,T不可改):重新定义一个类的封装。