STL重要知識總結

2021-09-12 07:40:41 字數 1704 閱讀 3091

stl的知識學完了,明天的演算法課就要講貪心演算法了。在這一段stl學習中,我逐漸掌握了stl模板的使用,的確很方便,也很讓人依賴。

題目需要思考,知識需要理解。

vj上的題目沒做幾道,多數是用sort,vector,set做的,很多不會的題目。我總結這個不會有兩個因素:閱讀英語材料不是很適應和解題和**實現沒清晰思路。掌握了stl也不會做只是說明知識和思維方法還有很多沒掌握的,**敲的太少。可以說,對於複雜的演算法題目,我是有一些畏難心理的。

不應該這樣,既然選擇了這樣一條路,就應該只顧風雨兼程。

前面的幾篇部落格已經總結完了stl的知識,對於map和優先佇列的知識,我掌握的不好,不會用在題目裡。下面著重總結一下:

map標頭檔案: #include map_name;

如:map m;//預設按string由小到大排序

操作:m.size() 返回容器大小

m.empty() 返回容器是否為空

m.count(key) 返回鍵值等於key的元素的個數

m.lower_bound(key) 返回鍵值等於key的元素的第乙個可安插 的位置

m.upper_bound(key) 返回鍵值等於key的元素的最後乙個可安 插的位置

操作:m.begin() 返回乙個雙向迭代器,指向第乙個元素。

m.end() 返回乙個雙向迭代器,指向最後乙個元素的下乙個 位置。

m.clear() 講整個容器清空。

m.erase(elem) 移除鍵值為elem的所有元素,返回個數,對 於map來說非0即1。

m.erase(pos) 移除迭代器pos所指位置上的元素。

直接元素訪問:

m[key] = value;

查詢的時候如果沒有鍵值為key的元素,則安插乙個鍵值為key的新元素,實值為預設(一般0)。

操作:m.insert(elem) 插入乙個元素elem

a)運用value_type插入

mapm;

m.insert(map:: value_type (「robin」, 22.3));

b) 運用pair<>

m.insert(pair(「robin」, 22.3));

c) 運用make_pair()

m.insert(make_pair(「robin」, 22.3));

#include #include #include using namespace std;

int main()else

優先佇列

標頭檔案: #include

定義:priority_queue priority_queue_name;

如:priority_queue q;//預設是大頂堆

操作:q.push(elem) 將元素elem置入優先佇列

q.top() 返回優先佇列的下乙個元素

q.pop() 移除乙個元素

q.size() 返回佇列中元素的個數

q.empty() 返回優先佇列是否為空

#include #include #include using namespace std;

#define pow2(a) ((a)*(a))

#define dist2(x, y) (pow2(x) + pow2(y))

struct coord

};int main()

STL知識總結

最近學了個c 標準模板庫,名字叫做stl,個人感覺比較實用,但也是不太好理解。其他滿分,真的型別全,範圍廣,最最重要的一點是極為方便。一 什麼是stl 1 stl是c 標準程式庫的核心,深刻影響了標準程式庫的整體結構,它由一些可適應不同需求的集合類,以及在這些資料集合上操作的演算法構成,stl內的所...

HTML css重要知識點總結

base元素 a元素的錨點鏈結 a元素和img元素結合 letter word spacing text transform 不常用 text indent text align font family font weight font style font varient 不常用 line hei...

STL不熟知識點總結

在前面已經總結了stl基本知識點的應用,本篇部落格我將主要總結一下自己對stl這一方面不熟的知識點。一.用迭代器遍歷map中的元素 訪問標準容器的元素的通用方法是使用迭代器 for map iterator it b.begin it b.end it 2.it first 表示用迭代器指向map中...