特定容器演算法

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不能指向給定範圍中的元素。


Tags: