STL標準庫中的演算法函式

2021-07-02 12:18:49 字數 3067 閱讀 5659

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,最終的排列是字典序。前提 要獲得全排列,第乙個排列必須是字典序中最前面的,也就是要先對第乙個排列...