c 中比較好用的「黑科技」

2022-02-16 15:49:48 字數 1499 閱讀 6798

一、黑科技函式(常用的我就不寫了,例如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.memset(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<3.#define ll long long ll即代表long long

4.#define pr(x) cout<<#x<<"="<<(x)<三、其他黑科技

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++軟體中的編譯器選項開啟方式:

工具-->編譯選項-->第乙個白框。

幾個比較好用的Androidstudio外掛程式

android studio是乙個功能全面的開發環境,裝備了為各種裝置 從智慧型手錶到汽車 開發android應用程式所需要的所有功能。不但總是有改進的餘地,android studio還提供了對第三方外掛程式的支援,下面本文將列出一些最有用的外掛程式。如果你想使用android模擬器更快地執行應用...

比較好用的滑鼠手勢工具

最近在敲鍵盤時發現手指關節有點痠痛,可能整天都在敲 手指過勞了。為了減少手指敲擊鍵盤次數,想起之前 chrome 上有用過乙個滑鼠手勢工具,簡單的手勢能免去滑鼠繁瑣的移動和點選,也不用幾個手指去組合地按快捷鍵。由於當時用的是 chrome 上的擴充套件,比較侷限,一直想找一款能夠全域性使用的滑鼠手勢...

推薦幾個比較好用的GTD工具

前幾天聽公尺老師講了關於時間管理的課,其中提到了gtd getting things done gtd是一種比較先進和有效的時間管理理論,我們可以用這種理論來提高我們學習效率,使我們在面對眾多的待完成任務時,有條不紊。我在網上找了幾個比較實用的gtd工具,這裡介紹給大家,希望能對大家有所幫助。1 首...