c 中algorithm標頭檔案

2021-07-13 03:03:00 字數 2914 閱讀 3236

包含了stl中的許多泛型演算法

可以呼叫一些函式,如:

int count(i being, i end,t x)

使用非自己定義的泛型演算法, 則要包含該標頭檔案,裡面定義了一些泛型演算法,比如說排序之類的

stl的演算法部分,裡邊定義了各種演算法,比如sort之類的。加上algorithm就可以使用stl

庫里的各種演算法了。

1)迴圈

對序列中的每個元素執行某項操作 for_each()

2)查詢 在序列中找出某個值的第一次出現的位置

find(a,a+

size,n)

返回b當b=a+size

即沒找到,a為指標

在序列中找出符合某謂詞的第乙個元素 find_if()

在序列中找出一子串行的最後一次出現的位置 find_end()

在序列中找出第一次出現指定值集中之值的位置 find_first_of()

在序列中找出相鄰的一對值 adjacent_find()

計數 在序列中統計某個值出現的次數 count()

在序列中統計與某謂詞匹配的次數 count_if()

比較 找出兩個序列相異的第乙個元素 mismatch()

兩個序列中的對應元素都相同時為真

在序列中找到等於某值的連續n次出現的位置 equal(a,a+n,b,cmp)

equal_range(a,a+n,x)

搜尋 在序列中找出一子串行的第一次出現的位置 search()

在序列中找出一值的連續n次出現的位置 search_n()

修改性序列操作(27個)

複製 從序列的第乙個元素起進行複製 copy()

從序列的最後乙個元素起進行複製 copy_backward()

交換 交換兩個元素 swap()

交換指定範圍的元素 swap_ranges()

交換由迭代器所指的兩個元素 iter_swap()

變換 將某操作應用於指定範圍的每個元素 transform()

替換 用乙個給定值替換一些值 replace()

替換滿足謂詞的一些元素 replace_if()

複製序列時用一給定值替換元素 replace_copy()

複製序列時替換滿足謂詞的元素 replace_copy_if()

填充 用一給定值取代所有元素 fill()

用一給定值取代前n個元素 fill_n()

生成 用一操作的結果取代所有元素 generate()

用一操作的結果取代前n個元素 generate_n()

刪除 刪除具有給定值的元素 remove()

刪除滿足謂詞的元素 remove_if()

複製序列時刪除具有給定值的元素 remove_copy()

複製序列時刪除滿足謂詞的元素 remove_copy_if()

唯一 刪除相鄰的重複元素 unique()

複製序列時刪除相鄰的重複元素 unique_copy()

反轉 反轉元素的次序 reverse(a,a+n)

複製序列時反轉元素的次序 reverse_copy()

環移 迴圈移動元素 rotate(a,a+m,a+n)

以m位置為界交換前後序列

複製序列時迴圈移動元素 rotate_copy()

隨機 採用均勻分布來隨機移動元素 random_shuffle()

劃分 將滿足某謂詞的元素都放到前面 partition()

將滿足某謂詞的元素都放到前面並維持原順序 stable_partition()

序列排序及相關操作(27個)

排序 以很好的平均效率排序 sort(a,a+20,cmp)

bool cmp( int a,

int b )

在容器中或string用begin()

排序,並維持相同元素的原有順序 stable_sort()

將序列的前一部分排好序 partial_sort()

複製的同時將序列的前一部分排好序 partial_sort_copy()

第n個元素 將第n各元素放到它的正確位置 nth_element()

二分檢索 找到大於等於某值的第一次出現 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(a,a+n)

序列中的最大元素 max_element()

詞典比較 兩個序列按字典序的第乙個在前 lexicographical_compare()

排列生成器 按字典序的下乙個排列 next_permutation()

按字典序的前乙個排列 prev_permutation()

C 標頭檔案系列 algorithm

algorithm標頭檔案是c 的標準演算法庫,它主要應用在容器上。因為所有的演算法都是通過迭代器進行操作的,所以演算法的運算實際上是和具體的資料結構相分離的,也就是說,具有低耦合性。因此,任何資料結構都能使用這套演算法庫,只要它具有相應的迭代器型別。如上圖所示,庫中的演算法主要分為4類 用過這個演...

C 演算法庫標頭檔案 algorithm

algorithm標頭檔案是c 的標準演算法庫,它主要應用在容器上。因為所有的演算法都是通過迭代器進行操作的,所以演算法的運算實際上是和具體的資料結構相分離的 也就是說,具有低耦合性。因此,任何資料結構都能使用這套演算法庫,只要它具有相應的迭代器型別。函式功能 示例 all of any of no...

C 中algorithm標頭檔案下的常用函式

1.algorithm常用的函式有 max min和abs函式,下面是具體的 include includeusing namespace std int main void swap函式,下面是具體的 include includeusing namespace std int main void...