C 中STL常用演算法概要

2021-07-13 05:02:41 字數 3978 閱讀 5580

stl演算法部分主要由標頭檔案、、組成。要使用其中的演算法必須包含標頭檔案,其中是數值演算法,則用於定義一些模板類,宣告函式物件。

現在將stl演算法大致分為四類進行介紹:

1

、非可變序列演算法:指不直接修改其所操作的容器內容的演算法。

2、可變序列演算法:指可以修改它們所操作的容器內容的演算法。

3、排序演算法:包括對序列進行排序和合併的演算法、搜尋演算法以及有序序列上的集合操作。

4、數值演算法:對容器內容進行數值計算。

現在對其進行細緻分類並對其功能說明:

1.查詢演算法:

1)adjacent_find:  在

iterator

對標識元素範圍內,查詢一對相鄰重複元素,找到則返回指向這對元素的第乙個元素的

forwarditerator

。否則返回

last

。過載版本使用輸入的二元操作符代替相等的判斷。

2)binary_search: 

在有序序列中查詢

value

,找到返回

true

。過載的版本實用指定的比較函式物件或函式指標來判斷相等。

2)binary_search: 

在有序序列中查詢

value

,找到返回

true

。過載的版本實用指定的比較函式物件或函式指標來判斷相等。

3)count: 

利用等於操作符,把標誌範圍內的元素與輸入值比較,返回相等元素個數。

4)count_if:

利用輸入的操作符,對標誌範圍內的元素進行操作,返回結果為

true

的個數。

5)equal_range: 

功能和equal類似

,返回一對

iterator

,第乙個表示

lower_bound

,第二個表示upper_bound

6)find:

利用底層元素的等於操作符,對指定範圍內的元素與輸入值進行比較。當匹配時,結束搜尋,返回該元素的乙個

inputiterator

7)find_end:

在指定範圍內查詢

"由輸入的另外一對

iterator

標誌的第二個序列

"的最後一次出現。找到則返回最後一對的第乙個

forwarditerator

,否則返回輸入的

"另外一對

"的第乙個

forwarditerator

。過載版本使用使用者輸入的操作符代替等於操作。

8)find_first_of: 

在指定範圍內查詢

"由輸入的另外一對

iterator

標誌的第二個序列

"中任意乙個元素的第一次出現。過載版本中使用了使用者自定義操作符。

9)find_if:

使用輸入的函式代替等於操作符執行

find

10)lower_bound: 

返回乙個

forwarditerator

,指向在有序序列範圍內的可以插入指定值而不破壞容器順序的第乙個位置。過載函式使用自定義比較操作。

11)upper_bound:

返回乙個

forwarditerator

,指向在有序序列範圍內插入

value

而不破壞容器順序的最後乙個位置,該位置標誌乙個大於

value

的值。過載函式使用自定義比較操作。

12)search:

給出兩個範圍,返回乙個

forwarditerator

,查詢成功指向第乙個範圍內第一次出現子串行

(第二個範圍

)的位置,查詢失敗指向

last1

。過載版本使用自定義的比較操作。

13)search_n: 

在指定範圍內查詢

val出現

n次的子串行。過載版本使用自定義的比較操作。

2.排序演算法:

1)inplace_merge:

合併兩個有序序列,結果序列覆蓋兩端範圍。過載版本使用輸入的操作進行排序。

2)merge:

合併兩個有序序列,存放到另乙個序列。過載版本使用自定義的比較。

2)merge:

合併兩個有序序列,存放到另乙個序列。過載版本使用自定義的比較。

3)nth_element:

將範圍內的序列重新排序,使所有小於第

n個元素的元素都出現在它前面,而大於它的都出現在後面。過載版本使用自定義的比較操作。

4)partial_sort:

對序列做部分排序,被排序元素個數正好可以被放到範圍內。過載版本使用自定義的比較操作。

5)partial_sort_copy:

與partial_sort

類似,不過將經過排序的序列複製到另乙個容器。

6)partition:

對指定範圍內元素重新排序,使用輸入的函式,把結果為

true

的元素放在結果為

false

的元素之前。

7)random_shuffle:

對指定範圍內的元素隨機調整次序。過載版本輸入乙個隨機數產生操作。

8)reverse:

將指定範圍內元素重新反序排序

9)reverse_copy:

與reverse

類似,不過將結果寫入另乙個容器。

10)rotate:

將指定範圍內元素移到容器末尾,由

middle

指向的元素成為容器第乙個元素。

11)rotate_copy:

與rotate

類似,不過將結果寫入另乙個容器。

12)sort:

以公升序重新排列指定範圍內的元素。過載版本使用自定義的比較操作。

13)stable_sort:

與sort

類似,不過保留相等元素之間的順序關係。

14)stable_partition: 

與partition

類似,不過不保證保留容器中的相對順序。

c 回顧 STL 常用演算法

把vector裡面的數字都乘以2 include include include using namespace std int main transform begin xs end xs begin xs int x return 0 transform的第三個引數也可以是別的容器的某個位置,如...

STL常用演算法

stl常用演算法 1 sort sort v.begin v.end 2 unique auto end unique unique begin vec1 end vec1 去掉連續重複的元素。vec1.erase end unique,vec1.end 3 string相關的操作 char c a...

STL常用演算法

include include include include include include include include 一些算術演算法中需要stl中常用的遍歷演算法 for each,transform void show int n int show1 int n int main stl...