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不可改):重新定义一个类的封装。