特定容器算法
list和forward_list成员函数版本的算法:
操作 | 解释 |
---|---|
lst.merge(lst2) |
将来自lst2 的元素合并入lst ,二者都必须是有序的,元素将从lst2 中删除。 |
lst.merge(lst2, comp) |
同上,上面版本使用<运算符,这个版本使用给定比较操作。 |
lst.remove(val) |
调用erase 删除掉与给定值相等(==)的每个元素 |
lst.remove_if(pred) |
调用erase 删除掉令一元谓词为真的每个元素 |
lst.reverse() |
反转lst 中元素的顺序 |
lst.sort() |
使用< 排序元素 |
lst.sort(comp) |
使用给定比较操作排序元素 |
lst.unique() |
调用erase 删除同一个值的连续拷贝。 |
lst.unique(pred) |
上面版本使用使用==,这个版本 使用给定的二元谓词。 |
上面的操作都返回void |
list和forward_list的splice成员函数版本的参数:
splice此算法是链表数据结构特有的,无通用版本
lst.splice(args) 或 flst.splice_after(args) | |
---|---|
参数 | 解释 |
(p,lst2) |
p 是一个指向lst 中元素的迭代器,或者一个指向flst 首前位置的迭代器。函数将lst2 中的所有元素移动到lst 中p 之前的位置 或是 flst 中p 之后的位置。将元素从lst2 中删除。lst2 的类型必须和lst 相同,而且不能是同一个链表。 |
(p,lst2, p2) |
同上,p2 是一个指向lst2 中位置的有效的迭代器,将p2 指向的元素移动到lst 中,或将 p2 之后的元素移动到flst 中。lst2 可以是于lst 或flst 相同的链表。 |
(p,lst2, b,e) |
b 和e 表示lst2 中的合法范围。将给定范围中的元素从lst2 移动到lst 或first 中。lst2 与lst 可以使相同的链表,但p 不能指向给定范围中的元素。 |