算法養成:弱雞大學生淺談c++stl

前言

弱雞大二學生,一意孤行學算法半年,首次寫博客,歡迎各位大佬指教。今天想談談c++比較常用,好用的stl
如果想看大佬可移步至AcWing分享。

vector:可變數組

vector這個真的是個好東西,有重載各類運算符,離散化神器。
各類方法:
vector<類型> v;
v.push_back(x);//在尾部插入x
v.pop_back(x);//從尾部刪除一個元素

set/map :平衡樹(無重複)

set <類型>s;
s.insert(x);//插入
s.erase(x);//刪除
遍歷
for(auto x:s)//x一定是有序的
map<類型,類型> mp;
map最誘人的是什麼呢,下面給大家演示一下
map<string,int> mp;
mp[“mpnb”]+=1;//這句話即使"mpnb"不存在也不會炸,他會幫你初始化爲0,然後cout<<mp[“mpnb”]<<endl;//可以直接訪問
當然map也可以用for(auto x:mp)訪問

priorty_queue:堆

堆用起來有多爽就不必我多說了吧。
priority_queue<類型> heap//大根堆,類型必須重載小於號
priority_queue<類型,vector<類型>,greater<類型>>//小根堆
heap.top()
heap,pop()
heap,push(x)

最好用的幾個stl就介紹到這裏了,想要熟練掌握還是要多刷題。雖然自己也是新手但還是想推薦大家一些刷題路線,萌新學會c++之後可以先刷pat乙級,然後可以買本《算法競賽進階指南》好好琢磨。(當然精力充沛可以同時進行)算法競賽進階指南可以移步至acwing,y總講的是真的好。還有就是學算法一定要堅持到底,千萬不要半途而廢,好,祝大家早日acm那個牌牌。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章