演算法筆記6 9 algorithm標頭檔案下常用函式

2021-09-12 02:21:49 字數 2432 閱讀 6891

目錄

1.max(),min(),abs()

2.max_element()和min_element()求陣列集合以及結構體中最大最小值

3.swap(x,y)  其實不在algorithm裡

4.reverse()

5.next_permutation()

6.fill()

7.sort()

8.lower_bound()和upper_bound()

補充:日積月累

1.find(begin,end,n)

2.求集合交並差

3.swap  不需要algorithm標頭檔案 c++ std標準空間中就有

4.pow

5、transform  string字串大小寫轉換

求x,y,z中的最大值 :max(x,max(y,z))

abs(x)  x只能是int型,要求浮點數絕對值,還是要用cmath下的fabs

#include#includeusing namespace std;

int main()

my(){}

}my[5];

bool cmp(my m1,my m2)

cout<

#includeusing namespace std;

int main();

for(int i=0;i<5;i++);//初值賦值為123 就能求出全排列

把陣列或者容器內某一段區間賦值為某個相同的值。和memset不同,這裡的賦值可以是陣列型別對應範圍的任何值。

12.memset函式 memset(陣列名,值,sizeof(陣列名)) (需要#include)  memset按位元組賦值,每個位元組賦一樣的值,由於0的二進位制補碼全為0,-1的二進位制補碼全為1,初學賦值0,-1不易弄錯,賦其他值要用fill函式

eg:memset(a,0,sizeof(a))全部賦值0

13.fill函式   fill(a,a+5,233)陣列

a[0]~a[4]均賦值為233  比memset好用,不過效率低一些,且包含在algorithm裡

初始化二維陣列a[n][n]為k    fill(a[0],a[0]+n*n,k);

#include#includeusing namespace std;

int main();

fill(a,a+5,1998);

for(int i=0;i<5;i++);

void findn(int n);

//找到返回位址

c語言函式,不僅可以求乘方,還可以求開方
a的n次方     pow(a,n)

n次根號a     pow(a,1.0/n)

c++ string字串 大小寫轉換  位址修改,儲存在原str中 

transform(str.begin(), str.end(), str.begin(), ::tolower);//->小寫 

transform(str.begin(), str.end(), str.begin(), ::toupper);//->大寫

Algorithm 排序演算法

閒來無事回顧一下原來所學的排序演算法,包括冒泡 選擇 插入 希爾 快速 歸併排序,這六種。首先依次講解原理,最後放出實現及測試速度原始碼。我想大部分人學習的第乙個排序演算法就是這個。顧名思義,如泡泡般,越到水面就越大,即經過連續不斷的判斷,選取大 或小 的值進行交換,一輪結束後,未排序資料最後面的就...

基礎演算法 algorithm

標頭檔案 include sort first,last,compare next permutation first,last unique first,last sort first,last,compare frist 排序起始位置 指標或iterator last 排序終止位置 指標或ite...

常用演算法(Algorithm)概述

參看內容 vc知識庫 演算法部分主要由標頭檔案,和組成。adjacent find adjacent 是鄰近的意思 binary search count count if equal range find find if merge sort random shuffle shuffle是洗牌的意...