C++中 #include<algorithm>
algorithm意為"演算法",是C++的标準模版庫(STL)中最重要的頭檔案之一,提供了大量基于疊代器的非成員模版函數,庫中的算法主要分為4類:
非修改性順序操作(Non-modifying sequence operations)
可變順序操作(Mutating sequence operations)
排序和關系操作(Sorting and related operations)
C庫算法(C library algorithms)
1.非修改性順序操作(12個)
- 循環:對序列中的每個元素執行某操作 for_each()
- 查找:在序列中找出某個值的第一次出現的位置 find() 利用底層元素的等于操作符,對範圍内的元 素與輸入的值進行比較。當比對時,結束搜尋,傳回該元素的一個 InputIterator 。
- 在序列中找出符合某謂詞的第一個元素 find_if()
- 在序列中找出一子序列的最後一次出現的位置 find_end()
- 在序列中找出第一次出現指定值集中之值的位置 find_first_of()
- 在序列中找出相鄰的一對值 adjacent_find()
- 計數:在序列中統計某個值出現的次數 count()
- 在序列中統計與某謂詞比對的次數 count_if()
- 比較:找出兩個序列相異的第一個元素 mismatch()
- 兩個序列中的對應元素都相同時為真 equal()
- 搜尋:在序列中找出一子序列的第一次出現的位置 search()
- 在序列中找出一值的連續n次出現的位置 search_n()
2.可變順序操作(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()
- 複制序列時反轉元素的次序 reverse_copy()
- 環移;循環移動元素 rotate()
- 複制序列時循環移動元素 rotate_copy()
- 随機:采用均勻分布來随機移動元素 random_shuffle()
- 劃分:将滿足某謂詞的元素都放到前面 partition()
- 将滿足某謂詞的元素都放到前面并維持原順序stable_partition()
3.排序和關系操作(27個)
- 排序:以很好的平均效率排序 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()
4.C庫算法
該頭檔案還包含了标準C頭檔案stdlib.h,大體相同。 隻是出于與C相容的目的,bsearch 和 qsort同時包含了C和C++的兩個函數簽名.
————————————————
版權聲明:本文為CSDN部落客「oreofilling」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/qq_38251358/article/details/113105746