您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關c++中黑科技函數有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一、黑科技函數(常用的我就不寫了,例如sort函數)
1.next_permutation(a+1,a+1+n) a[1-n]全排列
2.reverse(a+1,a+1+n) 將a[1-n]的數翻轉過來
3.*max_element(a+1,a+1+n) 找出a[1-n]數字最大值(*是因為這個函數是一個指針)
4.*min_element(a+1,a+1+n) 找出a[1-n]數字的最小值(*是因為這個函數是一個指針)
5.accumulate(a+1,a+n,0) 找出a[1-n]數字的和(0是初值)(c++11才支持)
6.num=unique(a+1,a+1+n)-a-1; 返回去重后數字個數,并將a數組去重
7.rotate(a+1,a+1+x,a+1+n) 把a數組前x數放在第n個數后面
8.lower_bound(a+1,a+1+n,x)-a 在a數組中下標[1-n]中找查找x的位置,返回第一個大于等于x的數字的指針-a即為下標
9.upper_bound(a+1,a+1+n,x)-a 在a數組中下標[1-n]中找查找x的位置,返回第一個大于x的數字的指針-a即為下標
10.random_shuffle(a+1,a+1+n) 隨機打亂a數組中下標[1-n]中的數(對拍神器)
11.vector a; 定義一個動態數組a(具體如何使用我就不說了)
12.clock()*1.0/CLOCKS_PER_SEC 返回程序運行時間(CLOCKS_PER_SEC在Windows環境下是1000)
13.memdet(a,0/-1/0x7f,sizeof(a)); 初始化a數組(只能是0,-1,正無窮)
二、黑科技宏定義
1.#define N 1000 把程序內N全部當成1000來用例如:a[N]=a[1000]
2.#define liangbei(a) a*2 (不好形容)例如:cout<<liangbei(10); 輸出:20;
3.#define ll long long ll即代表long long
4.#define pr(x) cout<<#x<<"="<<(x)<<endl; (不好形容*2)例如:int x=1; pr(x) 輸出:x=1
三、其他黑科技
1.O2 在編譯的時候隨你的代碼進行優化(似乎是分等級的 O1/O2/O3)
例如:int a=0 for(int i=1;i<=n;i++) a++; 直接變成a=n;
如何在自己電腦上開O2呢?
點擊編譯器選項中寫入-O2
2.-W -Wall -Wextra -Wconversion
在編譯器選項中加入這句話,會在你程序編譯時,給你提示一些你犯的一些低級錯誤(例如變量沒初始化)
3.-std=c++11
在編譯器選項中加入這句話,讓你在比賽時的c++更加強大!(搞清楚比賽是不是支持c++)
附錄:
1.Dev-c++軟件中的編譯器選項打開方式:
工具-->編譯選項-->第一個白框。
關于“c++中黑科技函數有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。