C++有哪些NOIP中適用的能大幅簡化編碼及調試難度的內置函數/數據結構?

OI將至,求各位dalao分享一下自己知道的好東西~

比如說nth_element()之類的函數


pq map set vector

ext pbds

不用白不用


謝...邀?

STL中的模板,比如map,set,vector,priority_queue等等,還有algorithm里的sort,***er_bound,unique,nth_element等等,都是noip確認可以用的,至於pbds等倒是不太清楚能不能用。

使用STL可以大幅減少編程時間和難度,在noip這個時間短的比賽,儘管不開-O2優化,但是從求穩和節省時間的角度,還是建議用的。(如果你想AK就還是盡量手寫吧,因為這幾年都有那麼幾個點卡常數)


vector,可以直接swap。

stack可以提高代碼可讀性,雖然簡單,但是能少寫一個數據結構多好。


vector sort map queue

至少有了我用前3個還是少寫了很多代碼,並且沒損什麼效率,但是我嫌stl的queue太慢普通的queue還是在手寫。


上stl啊,sort,map,set,啥都有。


謝邀qwq 辣雞退役選手強答一發

前面說的我覺得很全了 主要分為

數據結構:vector map stack queue priority_queue set deque bitset以及沒怎麼用過的multiset(順便吐槽STL棧功能捉急233

演算法(大概):常用的大概包括algorithm里的sort unique 以及cmath里的各種數學函數外加懶人必備lower_bound

不過有兩個前面好像沒提到233 就是pair和string 在不考慮時間的情況下 這兩個都可以減少很多代碼複雜度

還有黑科技pbds(劃掉)

tips:建議至少對指針 地址 迭代器有一定的了解再使用大部分STL


用的最多的算是vector,map,set,queue,stack了吧,還有幾個不常用的比如tuple,pbds,bitset,函數的話有next_permutation等等(雖然不知道noip能不能用)


STL啊(其他人說的挺好了我就不講了)

STDINT啊

#include & // 注意不能cstdint

然後就可以使用以下類型:

int8_t

int 16_t

....

int64_t

uint8_t

uint16_t

....

然後就可以

#define int long long

並把main的返回值改成int32_t了

順便可以用萬能庫bits/stdc++.h


瀉藥.....(弱子般的我為什麼會被邀請....

樓上的大佬們都說的很準確了

STL模版中的vector和map用的比較多

但是弱子般的答主不習慣.....一般手打

其他用的比較多的就是sort(頭文件algorithm)

排序用快排碼一堆不如sort...複雜度是n*log(n)

有些結構體類型排序用sort真心方便...

先寫到這裡吧.....

想到別的再補充.....QAQ


推薦閱讀:

說下近些年來你認為最強的OI選手?
什麼樣的C++代碼不開O2沒事,一開O2就會出錯?
有哪些這樣的圖片或句子?
獲得IOI金牌是怎樣的一種體驗?

TAG:編程 | C編程語言 | OI | NOIP | 演算法競賽 |