資料結構stl
阿新 • • 發佈:2018-12-11
排序sort
bool cmp(int x1, int x2)
{
return x1 < x2;
}
sort(a,a + 100, cmp)
棧 stack
#include <stack>
using namespace std;
stack <int> s;
s.top(); //取棧頂
s.push(x); //入棧
s.pop(); //出棧
s.empty(); //是否為空
s.size(); //棧中元素個數
佇列 queue
#include <queue> using namespace std; queue <int> q; q.front(); //取隊頭 q.push(x); //入隊 q.pop(); //出隊 q.empty(); //是否為空 q.size(); //佇列中元素個數
向量 vector
#include <vector>
using namespace std;
vector<int> v;
v.push_back(x) //尾部插入一個元素x
int x = v[i]; //取下表為i的元素
int Size = v.size() //向量的長度
v.clear(); //清空向量
優先佇列priority_queue
•類似於堆的特性
•#include <queue> using namespace std; priority_queue <int> q; q.top(); //取隊首元素,預設是佇列中的最大值 其餘參考queue
集合 set&multiset
#include <set> #include <multiset> using namespace std; set<int> s; set<int>::iterator it;//集合迭代器,用於遍歷整個集合 s.begin() (s.end())//返回指向第一個元素(最後一個)的迭代器; erase(x) //刪除集合中的元素x erase(it)//刪除迭代器為it的元素 insert(x)//插入一個元素x 重複插入的元素只算一個,不能重複 multiset用法基本跟set一樣,只是multiset允許有重複值。 set,mulset裡面的元素預設從小到大排列
關聯集合map
•#include <map>
using namespace std;
map<A,B> mp;//定義一個鍵值對分別為A, B(A,B為資料型別)的關聯容器A是鍵,B是他的值
int x =mp[A];//得到鍵A的值
mp[A] =x;//將鍵A的值賦值為x
基於map,set,priority_queue的刪除,插入操作複雜度為log(N).