1.泛型算法之交易算法
交易算法是指改變容器中對象的操作启涯,具體包括:
copy remove
swap unique
transform reserve
replace rotate
fill random_shuffle
generate partition
copy: 復制序列
copy_backward: 與copy相同绊谭,不過元素是以相反順序被拷貝辐啄。
iter_swap: 交換兩個ForwardIterator的值异逐。
remove: 刪除指定范圍內所有等于指定元素的元素。注意纳账,該函數(shù)不是真正刪除函數(shù)兄旬。內置函數(shù)不適合使用remove和remove_if函數(shù)。
remove_copy: 將所有不匹配元素復制到一個制定容器凡纳,返回OutputIterator指向被拷貝的末元素的下一個位置窃植。
remove_if: 刪除指定范圍內輸入操作結果為true的所有元素。
remove_copy_if: 將所有不匹配元素拷貝到一個指定容器荐糜。
replace: 將指定范圍內所有等于vold的元素都用vnew代替巷怜。
replace_copy: 與replace類似,不過將結果寫入另一個容器暴氏。
replace_if: 將指定范圍內所有操作結果為true的元素用新值代替延塑。
replace_copy_if: 與replace_if,不過將結果寫入另一個容器答渔。
swap: 交換存儲在兩個對象中的值关带。
swap_range: 將指定范圍內的元素與另一個序列元素值進行交換。
unique: 清除序列中重復元素沼撕,和remove類似豫缨,它也不能真正刪除元素。重載版本使用自定義比較操作端朵。
unique_copy: 與unique類似好芭,不過把結果輸出到另一個容器。
2.排序和通用算法:提供元素排序策略
inplace_merge: 合并兩個有序序列冲呢,結果序列覆蓋兩端范圍舍败。重載版本使用輸入的操作進行排序。
merge: 合并兩個有序序列敬拓,存放到另一個序列邻薯。重載版本使用自定義的比較。
nth_element: 將范圍內的序列重新排序乘凸,使所有小于第n個元素的元素都出現(xiàn)在它前面厕诡,而大于它的都出現(xiàn)在后面。重載版本使用自定義的比較操作营勤。
partial_sort: 對序列做部分排序灵嫌,被排序元素個數(shù)正好可以被放到范圍內。重載版本使用自定義的比較操作葛作。
partial_sort_copy: 與partial_sort類似寿羞,不過將經過排序的序列復制到另一個容器。
partition: 對指定范圍內元素重新排序赂蠢,使用輸入的函數(shù)绪穆,把結果為true的元素放在結果為false的元素之前。
random_shuffle: 對指定范圍內的元素隨機調整次序。重載版本輸入一個隨機數(shù)產生操作玖院。
reverse: 將指定范圍內元素重新反序排序菠红。
reverse_copy: 與reverse類似,不過將結果寫入另一個容器难菌。
rotate: 將指定范圍內元素移到容器末尾途乃,由middle指向的元素成為容器第一個元素。
rotate_copy: 與rotate類似扔傅,不過將結果寫入另一個容器。
sort: 以升序重新排列指定范圍內的元素烫饼。重載版本使用自定義的比較操作猎塞。
stable_sort: 與sort類似,不過保留相等元素之間的順序關系杠纵。
stable_partition: 與partition類似荠耽,不過不保證保留容器中的相對順序。
3.數(shù)值算法
accumulate: iterator對標識的序列段元素之和比藻,加到一個由val指定的初始值上铝量。重載版本不再做加法,而是傳進來的二元操作符被應用到元素上银亲。
partial_sum: 創(chuàng)建一個新序列慢叨,其中每個元素值代表指定范圍內該位置前所有元素之和。重載版本使用自定義操作代替加法务蝠。
inner_product: 對兩個序列做內積(對應元素相乘拍谐,再求和)并將內積加到一個輸入的初始值上。重載版本使用用戶定義的操作馏段。
adjacent_difference: 創(chuàng)建一個新序列轩拨,新序列中每個新值代表當前元素與上一個元素的差。重載版本用指定二元操作計算相鄰元素的差院喜。