C STL 常用排序演算法

2021-09-07 15:39:09 字數 1214 閱讀 5228

以下是排序和通用演算法:提供元素排序策略

merge: 合併兩個有序序列,存放到另乙個序列。

例如:vecinta,vecintb,vecintc是用vector宣告的容器,

vecinta已包含1,3,5,7,9元素,

vecintb已包含2,4,6,8元素

vecintc.resize(9); //擴大容量

merge(vecinta.begin(),vecinta.end(),vecintb.begin(),vecintb.end(),vecintc.begin());

此時vecintc就存放了按順序的1,2,3,4,5,6,7,8,9九個元素

sort: 以預設公升序的方式重新排列指定範圍內的元素。若要改排序規則,可以輸入比較函式。

//學生類

class cstudent:

public:

int m_iid;

string m_strname;

} //學號比較函式

bool compare(const cstudent &stua,const cstudent &stub)

random_shuffle: 對指定範圍內的元素隨機調整次序。

srand(time(0)); //設定隨機種子

vectorvecint;

vecint.push_back(1);

vecint.push_back(3);

vecint.push_back(5);

vecint.push_back(7);

vecint.push_back(9);

string str("itcastitcast ");

random_shuffle(vecint.begin(), vecint.end()); //隨機排序,結果比如:9,7,1,5,3

random_shuffle(str.begin(), str.end()); //隨機排序,結果比如:" itstcasticat "

vectorvecint;

vecint.push_back(1);

vecint.push_back(3);

vecint.push_back(5);

vecint.push_back(7);

vecint.push_back(9);

reverse(vecint.begin(), vecint.end()); //

c STL之常用排序演算法

sort 對容器元素進行排序 random shuffle 洗牌,指定範圍內的元素隨機調整次序 merge 容器元素合併,並儲存到另一容器中 reverse 反轉指定範圍內的元素 1.sort includeusing namespace std include include include 常用...

C STL常用演算法總結

演算法 問題的求解步驟,以有限的步驟,解決數學或邏輯中的問題。accumulate 元素統計 template t accumulate inputiterator first,inputiterator last,t init template t accumulate inputiterator...

C STL 常用查詢演算法

find 查詢元素,內建型別 void test01 查詢在區間內出現的第乙個5,返回當前查詢元素迭代器 vector int iterator it find v.begin v.end 5 if it v.end else find 查詢元素,自定義型別,得告訴編譯器如何做對比 class pe...