C algorithm函式簡介 詳細

2021-10-25 13:45:19 字數 2608 閱讀 2760

algorithm意為"演演算法",是c++的標準模版庫(stl)中最重要的標頭檔案之一,提供了大量基於迭代器的非成員模版函式,庫中的演算法主要分為4類:

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

查詢:在序列中找出某個值的第一次出現的位置 find() 利用底層元素的等於操作符,對範圍內的元素與輸入的值進行比較。當匹配時,結束搜尋,返回該元素的乙個 inputiterator 。

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

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

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

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

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

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

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

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

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

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

複製:從序列的第乙個元素起進行複製 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()

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

環移;迴圈移動元素 rotate()

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

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

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

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

排序:以很好的平均效率排序 sort()

排序,並維持相同元素的原有順序 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()

序列中的最大元素 max_element() 

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

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

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

該標頭檔案還包含了標準c標頭檔案stdlib.h,大體相同。 只是出於與c相容的目的,bsearchqsort同時包含了c和c++的兩個函式簽名.

本文參考這裡

C Algorithm中的函式簡介

algorithm意為 演算法 是c 的標準模版庫 stl 中最重要的標頭檔案之一,提供了大量基於迭代器的非成員模版函式。本文簡單介紹find,swap,sort,for each這幾個函式的功能及使用方法。給定乙個vector容器 vectornums find find nums.begin n...

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

使用algorithm標頭檔案 max x,y 和min x,y 分別返回x和y中的最大值和最小值 abs x 返回x的絕對值,注意浮點型的絕對值請用math標頭檔案下的fabs函式 swap x,y 用來交換x和y的值 reverse it,it2 可以將陣列指標在 it,it2 之間的元素或容器...

C algorithm標頭檔案下sort函式的使用

sort函式是用來排序的函式,它是根據具體的情況使用不同的排序方法,效率較高,一般來說,不推薦使用c語言中的qsort函式,原因是qsort函式使用起來比較麻煩,涉及到很多指標的操作,而且在sort函式在實現中規避了經典快速排序中可能出現的會導致實際複雜度退化到o n 2 的極端情況,所以我們在排序...