2019-01-24 22:30:32 記錄學習PAT的一些知識,有待更新 註:本文是對Algorithm 演算法筆記 的總結 C++標準庫模板(Standard Template Library,STL) 【vector】 1.單獨定義一個vector vector<typename> name; ...
2019-01-24 22:30:32
記錄學習PAT的一些知識,有待更新
註:本文是對Algorithm 演算法筆記 的總結
C++標準庫模板(Standard Template Library,STL)
【vector】
1.單獨定義一個vector vector<typename> name;
- vector<int> name;
- vector<double> name;
- vector<char> name;
2.定義vector數組
- vector<typename> Arrayname[arraySize]
- 例如 vector<int> vi[100];
3.vector 容器內元素訪問
- 通過下標訪問
定義一個為 vector<typename> vi; 可以直接訪問如:vi[0]、vi[1]
2.通過迭代器訪問
vector<typename>::iterator it; 這樣 it 就是一個vector<typename>::iterator 型的變數;
指出的是vi[i]和*(vi.begin()+i)是等價的;(類似於指針)
4.vector常用函數解析
(1)push_back();
(2)pop_back()
()size()
()clear()
(5)insert()
(6)erase()
5.vector 的常見用途
(1)存儲數據
(2)用連接表存儲圖
【set】
1.set的定義:set<typename> name;
- set<int> name;
- set<double> name;
- set<char> name;
- set數組的定義: set<typename> Arrayname[arraySize-1] 如:set<int> a[100];
2.set容器內元素的訪問
- set<typename>::iterator it; 這樣 it 就是一個set<typename>::iterator 型的變數;
3.set常用函數
- insert()
- find()
- erase()
- size()
- clear()
4.set的常見用途
set最主要的作用是自動去重並按升序排序
【map】
1.map的定義:map<typename1,typename2> mp;
比如:map<string,int> mp; 第一個 typename1 是鍵的類型,第二個 typename2 是值的類型 註意如果是字元串到整型的映射必須使用string
2.map容器內元素的訪問
(1)通過下標,如: mp['c'];
(2)通過迭代器,如:map<typename1,typename2>::iterator it;
#include<stdio.h> #include<map> using namespace std; int main(){ map<char,int> mp; mp['m']=20; mp['r']=40; mp['s']=54; for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++){ print("%c %d\n",it->first,it->second); } return 0; }
3.map常用函數
- find()
- erase()
- size()
- clear()
4.map的常見用途
- 需要建立字元與整數之間的映射
- 判斷大整數或者其他類型的數據是否存在的題目,把map當bool數組使用
【queue】
1.queue的定義:queue<typename> name;
2.queue容器內元素的訪問
先進先出的結構,所以只能用front() 訪問隊首元素,或是通過 back() 訪問隊尾元素
3.queue常用函數
- push()
- front(),back()
- pop()
- empty()
- size()
4.queue 的常見用途