首页 > 代码库 > 【足迹C++primer】35、特定容器算法

【足迹C++primer】35、特定容器算法

特定容器算法

lst.merge(lst2) 将来自lst2的元素并入到lst。这两个都必须是有序的。
lst.merge(lst2, comp) 元素将从lst2删除,第一个版本使用<运算符,第二个版本使用给定的运算符

lst.remove(lst2)调用erase删除掉与给定值相等(==)或令一元谓词为真的每个元素
lst.remove_if(pred)

lst.reverse() 反转lst中元素的顺序

lst.sort() 使用<或给定比较操作排序元素
lst.sort(comp)

lst.unique() 调用erase删除同一值的连续拷贝,第一个使用==;第二个版本使用给定的二元谓词。
lst.unique(pred)

splice成员

void splice ( iterator position, list<T,Allocator>& x );  
void splice ( iterator position, list<T,Allocator>& x, iterator i );
void splice ( iterator position, list<T,Allocator>& x, iterator first, iterator last );
这是链表独有的,所以没有通用版本。
所以对于list和forward_after的成员splice使用就可以了。
第一个版本(1)传输X的所有元素插入到容器中position之后。 第二个版本(2)只转让x中由i指出的元素进入容器中。 
第三个版本(3)X [first,last)传送范围到容器中。

链表特有的操作会改变容器



PS:这几章是有点水了,但是我的规定是每天一小节,大家要是想要代码的话,我也不知道去哪搞代码出来。。。。都是些概念性的东西,大家不爱看的或可以跳过,
过几天估计就好了,后面还有大头等着呢!!大笑