与其他容器不同,链表类型 list 和 forward_list 定义了几个成员函数形式的算法:
对于 list
和 forward_list
,应该优先使用成员函数版本的算法而不是通用算法。
splice 成员
链表类型还定义了 splice
算法,此算法是链表数据结构所特有的,因此不需要通用版本:
链表特有的操作会改变容器
多数链表特有的算法都与其通用版本很相似,但不完全相同。链表特有版本与通用版本之间的一个至关重要的区别是链表版本会改变底层的容器。例如,remove
的链表版本会删除指定的元素。
链表版本的 merge
函数会销毁给定的链表 ---- 元素从参数指定的链表中删除,被合并到调用 merge
的链表对象中。在 merge
之后,来自两个链表中的元素仍然存在,但它们都已在同一个链表中。