stl標準庫中的演算法函式
非修改性序列操作(12個)
型別
函式名
說明迴圈
for_each()
對序列中的每個元素執行某操作。
查詢find()
在序列中找出某個值的第一次出現的位置。
find_if()
在序列中找出符合某謂詞的第乙個元素。
find_end()
在序列中找出一子串行的最後一次出現的位置。
find_first_of()
在序列中找出第一次出現指定值集中之值的位置。
adjacent_find()
在序列中找出相鄰的一對值。
計數count()
在序列中統計某個值出現的次數。
count_if()
在序列中統計與某謂詞匹配的次數。
比較mismatch()
找出兩個序列相異的第乙個元素。
修改性序列操作(27個)
型別
函式名
說明複製
copy()
從序列的第乙個元素起進行複製。
copy_backward()
從序列的最後乙個元素起進行複製。
交換swap()
交換兩個元素。
swap_ranges()
交換指定範圍的元素。
iter_swap()
交換由迭代器所指的兩個元素。
變換transform()
將某操作應用於指定範圍的每個元素。
替換replace()
用乙個給定值替換一些值。
replace_if()
替換滿足謂詞的一些元素。
replace_copy()
複製序列時用一給定值替換元素。
replace_copy_if()
複製序列時替換滿足謂詞的元素。
填充fill()
用一給定值取代所有元素。
fill_n()
用一給定值取代前n個元素。
生成generate()
用一操作的結果取代所有元素。
generate_n()
用一操作的結果取代前n個元素。
刪除remove()
刪除具有給定值的元素。
remove_if()
刪除滿足謂詞的元素。
remove_copy()
複製序列時刪除具有給定值的元素。
remove_copy_if()
複製序列時刪除滿足謂詞的元素。
唯一unique()
刪除相鄰的重複元素。
unique_copy()
複製序列時刪除相鄰的重複元素。
反轉reverse()
反轉元素的次序。
reverse_copy()
複製序列時反轉元素的次序。
環移rotate()
迴圈移動元素。
rotate_copy()
複製序列時迴圈移動元素。
隨機random_shuffle()
採用均勻分布來隨機移動元素。
劃分partition()
將滿足某謂詞的元素都放到前面。
stable_partition()
將滿足某謂詞的元素都放到前面並維持原順序。
序列排序及相關操作(27個)
型別
函式名
說明排序
sort()
以很好的平均效率排序。
stable_sort()
排序,並維持相同元素的原有順序。
partial_sort()
將序列的前一部分排好序。
partial_sort_copy()
複製的同時將序列的前一部分排好序。
第n個元素
nth_element()
將第n各元素放到它的正確位置。
二分檢索
lower_bound()
找到大於等於某值的第一次出現。
upper_bound()
找到大於某值的第一次出現。
equal_range()
找到(在不破壞順序的前提下)可插入給定值的最大範圍。
binary_search()
在有序序列中確定給定元素是否存在。
歸併merge()
歸併兩個有序序列。
inplace_merge()
歸併兩個接續的有序序列。
有序結構
上的集合操作
includes()
一串行為另一串行的子串行時為真。
set_union()
構造兩個集合的有序並集。
set_intersection()
構造兩個集合的有序交集。
set_difference()
構造兩個集合的有序差集。
set_symmetric_difference()
構造兩個集合的有序對稱差集(並-交)。
堆操作push_heap()
向堆中加入元素。
pop_heap()
從堆中彈出元素。
make_heap()
從序列構造堆。
sort_heap()
給堆排序。
最大和最小
min()
兩個值中較小的。
max()
兩個值中較大的。
min_element()
序列中的最小元素。
max_element()
序列中的最大元素。
詞典比較
lexicographical_compare()
兩個序列按字典序的第乙個在前。
排列生成器
next_permutation()
按字典序的下乙個排列。
prev_permutation()
按字典序的前乙個排列。
STL標準庫演算法
目錄演算法是function template.演算法看不見containers,對其一無所知,所以它所需要的一切資訊都必須從iterators取得,而iterators必須能夠回答algorithm的所有提問,才能搭配algorithm的所有操作。演算法模板的形式如下 templatealgori...
標準模板庫(六) STL演算法函式介紹
1.iter swap函式 交換兩個 forwarditerator 的值。include include include include 演算法 include include 定義自己的模板類 using namespace std int main int b int len1 sizeof ...
關於STL標準模板庫的函式
next permutation 找下乙個排列的函式 排列組合的排列 第乙個排列是容器自身,這個函式修改容器自身使之變成字典序中下乙個排列 如果有下乙個排列就返回true,沒有下乙個排列就返回false,最終的排列是字典序。前提 要獲得全排列,第乙個排列必須是字典序中最前面的,也就是要先對第乙個排列...