与其他容器不同,链表类型list和forward_list定义了几个成员函数形式的算法。定义了独有的sort、merge、remove、reverse和unique算法。通用版本的sort要求随机访问迭代器,因此不能用于list和forward_list,因为这两个类型分别提供双向迭代器和前向迭代器。
|
lst.merge(lst2) lst.merge(lst2, comp) |
将 lst2 的元素合并到 lst 中。这两个 list 容器对象都必须排序。lst2中的元素将被删除。合并后,lst2为空。返回 void 类型。第一个版本使用<操作符,而第二个版本则使用comp指定的比较运算 |
|
lst.remove(val) lst.remove_if(unaryPred) |
调用lst.erase 删除所有等于指定值或使指定的谓词函数返回非零值的元素。返回 void 类型 |
|
lst.reverse() |
反向排列 lst 中的元素 |
|
lst.sort |
对 lst 中的元素排序 |
|
lst.splice(iter, lst2) lst.splice(iter, lst2, iter2) lst.splice(iter, beg, end) |
将 lst2 的元素移到 lst 中迭代器 iter 指向的元素前面。在 lst2 中删除移出的元素。第一个版本将 lst2 的所有元素移到 lst 中;合并后,lst2 为空。lst 和 lst2 不能是同一个 list 对象。第二个版本只移动 iter2 所指向的元素,这个元素必须是 lst2 中的元素。在这种情况中,lst 和lst2 可以是同一个 list 对象。也就是说,可在一个 list对象中使用 splice 运算移动一个元素。第三个版本移动迭代器 beg 和 end 标记的范围内的元素。beg 和 end 照例必须指定一个有效的范围。这两个迭代器可标记任意 list 对象内的范围,包括 lst。当它们指定 lst 的一段范围时,如果 iter 也指向这个范围的一个元素,则该运算未定义。 |
|
lst.unique() lst.unique(binaryPred) |
调用 erase 删除同一个值的团结副本。第一个版本使用 ==操作符判断元素是否相等;第二个版本则使用指定的谓词函数实现判断 |
浙公网安备 33010602011771号