一、stl介紹
stl標準模板庫,由惠普實驗室提供,裡面整合了常用的資料結構類模板和演算法函式模板等。
容器:用來儲存各種型別資料的資料結構。
迭代器:類似於專門用來指向容器成員的指標,用來遍歷、操作、管理容器中的成員,可以大大提高容器的訪問速度。
演算法:stl實現了常見的排序、查詢演算法。
list:雙端鍊錶容器
iterator:用來指向容器中的元素
begin() 獲取指向第乙個元素的迭代器
end() 獲取指向最後乙個元素的下乙個位置
相關使用參考:
vector:向量容器,俗稱陣列
#include #include using namespace std;
void show(vector& arr)
show(arr);
vectorarr1(10,0);
// 支援比較運算子
cout << (arr[0]==arr1[0]) << endl;
// at成員函式,相當於操作
stack、queue:棧和佇列
double-ended queues:雙端佇列,用法與向量基本一致,但可以在頭和尾快速插入和刪除元素
#include #include using namespace std;
int main()
; sets;
// 在集合中插入元素
s.insert(arr,arr+5);
set::iterator it;
for(it=s.begin(); it!=s.end(); it++)
// 返回某個值元素的個數
cout << endl << s.count(2) <
map:是一種關聯容器,在其他程式語言中叫字典,c++中叫對映,以key/value鍵值對的方式進行儲存,key的值不能重複。
multimap:多重對映,它與map很像,區別是它的key的值可以重複。
priority_queue:優先佇列,它會根據元素的比較結果進行排序。
#include #include #include #include using namespace std;
int com(int& a,int& b)
int main()
cout << pq.size() << endl;
while(!pq.empty())
}
總結:
1、vector和deque是支援運算,因此基本不需要迭代器,其他容器一律使用迭代器進行遍歷。
2、stack、queue、priority_queue容器沒有迭代器。
3、set、multiset、priority_queue會對元素進行排序,因它儲存元素要支援比較運算子。
C STL 學習筆記
一 stl a include include using namespace std 1 void sort iterator start,iterator end void sort iterator start,iterator end,strictweakordering cmp cmp 函...
C STL學習筆記
remove if使用方法 int a vectorarr a,a 14 std remove if arr.begin arr.end std bind2nd std less 100 for int i 0 i arr.size i 輸出結果為 240 100200 300102 555100 ...
C STL學習筆記
stl是個寶 由於c stl的開放,代替了那些需要老老實實寫結構體來實現堆疊二叉樹等資料結構的c等語言,很多演算法不需要自己來實現了 所有容器都有的兩個時間複雜度為o 1 的方法 a.size 返回容器中元素的個數 a.empty 返回容器是否為空 vector也叫變長陣列,即陣列長度可以動態變化。...