拷貝:
copy()
reverse_copy()
rotate_copy()
remove_copy() 拷貝不等于某值的元素到另一個序列。
remove_copy_if() 拷貝符合條件的到另一個序列。
填充和生成:
fill()
fill_n() 填充序列中的n個元素。
generate()為序列中的每個元素調(diào)用gen()函數(shù)。
排列:
next_permuttion() 后一個排列。
prev_permutation()
partition() 劃分,將滿足條件的元素移動到序列的前面。
stable_partition()
查找和替換:
find()
binary_search() 在一個已經(jīng)有順序的序列上查找。
find_if()
search() 檢查第二個序列是否在第一個序列中出現(xiàn),且順序相同。
刪除:注意必須調(diào)用erase()來真正刪除
remove()
unique()刪除相鄰重復元素,最好現(xiàn)排序。
合并序列:
merge()
數(shù)值算法:
accumulate() 對序列的每個元素進行運算后求和。
transform() 也可以對每個元素進行運算。
計數(shù):
size()總個數(shù)。
count()等于某值的元素個數(shù)。
adjacent_difference 序列中的后一個減前與他相鄰的前一個得到新的序列。
adiacent_find
accumlate : iterator 對標志的序列中的元素之和,加到一個由 init 指定的初始值上。重載的版本不再做加法,而是傳進來的二元操作符被應(yīng)用到元素上。
adjacent_different :創(chuàng)建一個新序列,該序列的每個新值都代表了當前元素與上一個元素的差。重載版本用指定的二元操作計算相鄰元素的差。
adjacent_find :在 iterator 對標志的元素范圍內(nèi),查找一對相鄰的重復元素,如果找到返回一個 ForwardIterator ,指向這對元素的第一個元素。否則返回 last 。重載版本使用輸入的二元操作符代替相等的判斷。
binary_search :在有序序列中查找 value ,如果找到返回 true 。重載的版本使用指定的比較函數(shù)對象或者函數(shù)指針來判斷相等。
copy :復制序列。
copy_backward :除了元素以相反的順序被拷貝外,別的和 copy 相同。
count :利用等于操作符,把標志范圍類的元素與輸入的值進行比較,并返回相等元素的個數(shù)。
count_if :對于標志范圍類的元素,應(yīng)用輸入的操作符,并返回結(jié)果為 true 的次數(shù)。
equal :如果兩個序列在范圍內(nèi)的元素都相等,則 equal 返回 true 。重載版本使用輸入的操作符代替了默認的等于操作符。
equal_range :返回一對 iterator ,第一個 iterator 表示由 lower_bound 返回的 iterator ,第二個表示由 upper_bound 返回的 iterator值。
fill :將輸入的值的拷貝賦給范圍內(nèi)的每個元素。
fill_n :將輸入的值賦值給 first 到 frist+n 范圍內(nèi)的元素。
find :利用底層元素的等于操作符,對范圍內(nèi)的元素與輸入的值進行比較。當匹配時,結(jié)束搜索,返回該元素的一個 InputIterator 。
find_if :使用輸入的函數(shù)替代了等于操作符執(zhí)行了 find 。
find_end :在范圍內(nèi)查找“由輸入的另外一個 iterator 對標志的第二個序列”的最后一次出現(xiàn)。重載版本中使用了用戶輸入的操作符替代等于操作。
find_first_of :在范圍內(nèi)查找“由輸入的另外一個 iterator 對標志的第二個序列”中的任意一個元素的第一次出現(xiàn)。重載版本中使用了用戶自定義的操作符。
for_each :依次對范圍內(nèi)的所有元素執(zhí)行輸入的函數(shù)。
generate :通過對輸入的函數(shù) gen 的連續(xù)調(diào)用來填充指定的范圍。
generate_n :填充 n 個元素。
includes :判斷 [first1, last1) 的一個元素是否被包含在另外一個序列中。使用底層元素的 <= 操作符,重載版本使用用戶輸入的函數(shù)。
inner_product :對兩個序列做內(nèi)積 ( 對應(yīng)的元素相乘,再求和 ) ,并將內(nèi)積加到一個輸入的的初始值上。重載版本使用了用戶定義的操作。
inner_merge :合并兩個排過序的連續(xù)序列,結(jié)果序列覆蓋了兩端范圍,重載版本使用輸入的操作進行排序。
iter_swap :交換兩個 ForwardIterator 的值。
lexicographical_compare :比較兩個序列。重載版本使用了用戶自定義的比較操作。
lower_bound :返回一個 iterator ,它指向在范圍內(nèi)的有序序列中可以插入指定值而不破壞容器順序的第一個位置。重載函數(shù)使用了自定義的比較操作。
max :返回兩個元素中的較大的一個,重載版本使用了自定義的比較操作。
max_element :返回一個 iterator ,指出序列中最大的元素。重載版本使用自定義的比較操作。
min :兩個元素中的較小者。重載版本使用自定義的比較操作。
min_element :類似與 max_element ,不過返回最小的元素。
merge :合并兩個有序序列,并存放到另外一個序列中。重載版本使用自定義的比較。
mismatch :并行的比較兩個序列,指出第一個不匹配的位置,它返回一對 iterator ,標志第一個不匹配的元素位置。如果都匹配,返回每個容器的 last 。重載版本使用自定義的比較操作。
next_permutation :取出當前范圍內(nèi)的排列,并將其重新排序為下一個排列。重載版本使用自定義的比較操作。
nth_element :將范圍內(nèi)的序列重新排序,使所有小于第 n 個元素的元素都出現(xiàn)在它前面,而大于它的都出現(xiàn)在后面,重載版本使用了自定義的比較操作。
partial_sort :對整個序列做部分排序,被排序元素的個數(shù)正好可以被放到范圍內(nèi)。重載版本使用自定義的比較操作。
partial_sort_copy :與 partial_sort 相同,除了將經(jīng)過排序的序列復制到另外一個容器。
partial_sum :創(chuàng)建一個新的元素序列,其中每個元素的值代表了范圍內(nèi)該位置之前所有元素之和。重載版本使用了自定義操作替代加法。
partition :對范圍內(nèi)元素重新排序,使用輸入的函數(shù),把計算結(jié)果為 true 的元素都放在結(jié)果為 false 的元素之前。
prev_permutation :取出范圍內(nèi)的序列并將它重新排序為上一個序列。如果不存在上一個序列則返回 false 。重載版本使用自定義的比較操作。
random_shuffle :對范圍內(nèi)的元素隨機調(diào)整次序。重載版本輸入一個隨機數(shù)產(chǎn)生操作。
remove :刪除在范圍內(nèi)的所有等于指定的元素,注意,該函數(shù)并不真正刪除元素。內(nèi)置數(shù)組不適合使用 remove 和 remove_if 函數(shù)。
remove_copy :將所有不匹配的元素都復制到一個指定容器,返回的 OutputIterator 指向被拷貝的末元素的下一個位置。
remove_if :刪除所有范圍內(nèi)輸入操作結(jié)果為 true 的元素。
remove_copy_if :將所有不匹配的元素拷貝到一個指定容器。
replace :將范圍內(nèi)的所有等于 old_value 的元素都用 new_value 替代。
replace_copy :與 replace 類似,不過將結(jié)果寫入另外一個容器。
replace_if :將范圍內(nèi)的所有操作結(jié)果為 true 的元素用新值替代。
replace_copy_if :類似與 replace_if ,不過將結(jié)果寫入另外一個容器。
reverse :將范圍內(nèi)元素重新按反序排列。
reverse_copy :類似與 reverse ,不過將結(jié)果寫入另外一個容器。
rotate :將范圍內(nèi)的元素移到容器末尾,由 middle 指向的元素成為容器第一個元素。
rotate_copy :類似與 rotate ,不過將結(jié)果寫入另外一個容器。
search :給出了兩個范圍,返回一個 iterator ,指向在范圍內(nèi)第一次出現(xiàn)子序列的位置。重載版本使用自定義的比較操作。
search_n :在范圍內(nèi)查找 value 出現(xiàn) n 次的子序列。重載版本使用自定義的比較操作。
set_difference :構(gòu)造一個排過序的序列,其中的元素出現(xiàn)在第一個序列中,但是不包含在第二個序列中。重載版本使用自定義的比較操作。
set_intersection :構(gòu)造一個排過序的序列,其中的元素在兩個序列中都存在。重載版本使用自定義的比較操作。
set_symmetric_difference :構(gòu)造一個排過序的序列,其中的元素在第一個序列中出現(xiàn),但是不出現(xiàn)在第二個序列中。重載版本使用自定義的比較操作。
set_union :構(gòu)造一個排過序的序列,它包含兩個序列中的所有的不重復元素。重載版本使用自定義的比較操作。
sort :以升序重新排列范圍內(nèi)的元素,重載版本使用了自定義的比較操作。
stable_partition :與 partition 類似,不過它不保證保留容器中的相對順序。
stable_sort :類似與 sort ,不過保留相等元素之間的順序關(guān)系。
swap :交換存儲在兩個對象中的值。
swap_range :將在范圍內(nèi)的元素與另外一個序列的元素值進行交換。
transform :將輸入的操作作用在范圍內(nèi)的每個元素上,并產(chǎn)生一個新的序列。重載版本將操作作用在一對元素上,另外一個元素來自輸入的另外一個序列。結(jié)果輸出到指定的容器。
unique :清除序列中重復的元素,和 remove 類似,它也不能真正的刪除元素。重載版本使用了自定義的操作。
unique_copy :類似與 unique ,不過它把結(jié)果輸出到另外一個容器。
upper_bound :返回一個 iterator ,它指向在范圍內(nèi)的有序序列中插入 value 而不破壞容器順序的最后一個位置,該位置標志了一個大于 value 的值。重載版本使用了輸入的比較操作。
堆算法: C++ 標準庫提供的是 max-heap 。一共由以下 4 個泛型堆算法。
make_heap :把范圍內(nèi)的元素生成一個堆。重載版本使用自定義的比較操作。
pop_heap :并不是真正的把最大元素從堆中彈出,而是重新排序堆。它把 first 和 last-1 交換,然后重新做成一個堆。可以使用容器的 back 來訪問被“彈出“的元素或者使用 pop_back 來真正的刪除。重載版本使用自定義的比較操作。
push_heap :假設(shè) first 到 last-1 是一個有效的堆,要被加入堆的元素在位置 last-1 ,重新生成堆。在指向該函數(shù)前,必須先把元素插入容器后。重載版本使用指定的比較。
sort_heap :對范圍內(nèi)的序列重新排序,它假設(shè)該序列是個有序的堆。重載版本使用自定義的比較操作。