可能有用的函式

2021-07-31 22:54:32 字數 1900 閱讀 1506

doublehypot(double x, double y)

求三角形斜邊

(hypotenuse)

doublefrexp(double x, int &exp)

將x分解成尾數和指數,指數存入exp,返回尾數

1..n的圈,迴圈數d步。

p = (p + d + n -

1) % n +

1;(從1到n)

p = (p + d + n) % n;(從0到n - 1)

bool isalpha(char)

bool isdigit(char)

char toupper(char)

double pow(double a, double b) a ^ b

返回double,誤差挺大的,比如int t = 2,pow(10,t),不同編譯器,有可能返回99.99999,直接賦給int,只得到99。

doubleround(double x)

將x向最近的整數取整,即四捨五入,然後轉化為double。

一定要用pow可以(int)round(pow(10,t))

或者直接迴圈t次乘10。

double floor(double x)

double ceil(double x)

int p =lower_bound(a , a + n, x) - a;

在有序陣列中, a到a + n中尋找大於等於x的數,返回第乙個符合條件的數的位址。

// p就為座標

// if(a[p] == x)...

vector v;

v.resize(int t) //改變大小,使只保留0 - t-1個元素

v.pop_back() //刪除最後乙個元素

stand(time(null));//程式執行開頭呼叫一次即可,不能每次產生隨機數時呼叫。

rand();//隨機均勻生成[0,rand_max]中的整數,rand_max至少為32767

若要生成[0,n]中的數,rand() / rand_max * n,四捨五入,若n很大精度稍差。

string s;

s.substr(id,len);//以下標id為開頭,長度為len的子串

s.substr(id);//以下標id為開頭,一直到末尾的子串

s.find(char c);//返回第乙個該字元的下標

if(s.find(char c) !=string::npos) {} //當找得到字元時才進行操作

c++ stl 求向量中的最大值和最小值

min_element(v.begin(),v.end())

返回最小的元素的位置

max_element(v.begin(),v.end())

序列 [first, last)。

trick:

數字比較大小:1.先比位數,位數多的數大 2.再比數字大小,從前往後,數字大的數大

字串比較大小:1.從前往後,比較字元大小,字元大的串大 2.再比位數,前面字元均一樣,最後長的串大

時間比較大小(進製相同12/24,格式hh:mm:ss)1.從前往後,數字大的時間大。 所以可以直接用字串比較

tip:

string t;

t = 'a' + t; 每次其實都將t向後移動,雖然可以這麼寫,但是容易超時,(3e5 2000ms + tle)

t += 'a'; 每次在最後加,reverse(t.begin(),t.end()) (相同規模下,140ms)

可能有用科技 系列目錄

收錄一下我這個爛人的擺爛記錄。最小直徑生成樹 oi wiki部分內容有誤,待勘誤,文末給出 鏈結,前面有些部分有點價值。子串行自動機 非常容易理解的啥也不是的自動機。多項式任意次冪 任意次根 大常數且沒用。字尾樹介紹很不全面,因為感覺這玩意比 sam 麻煩就徹底沒心思寫下去了。線性遞推與bm演算法 ...

今天可能有點衰

會同學 上午去廣州找乙個小學一直到高中的同學,昨天跟他約好的,他說今天到了給他 誰知道這個傢伙放我鴿子,我在賽馬場等了他1個小時,手機一直關機,從我這裡到那裡坐公汽得差不多兩個小時呢,幸好這兩天天氣轉涼,不然我可饒不了他。下午兩點過他才發簡訊說剛起床,真是個混蛋。本來打算是先會了他再去白雲區見另乙個...

關於日期的sql,做報表的時候可能有用

得到年月,日,季度 select to char 日期,yyyymmdd date id,to char 日期,yyyy 年 to char 日期,mm 月 to char 日期,dd 日 date name,to char 日期,yyyymm month id,to char 日期,yyyy 年 ...