vector, 變長陣列,倍增的思想
#include
size
() 返回元素個數
empty
() 返回是否為空
clear
() 清空
front()
/back()
push_back()
/pop_back()
begin()
/end()
支援比較運算,按字典序
//遍歷方式:
for(
int i=
0;isize()
;i++
)for
(vector<
int>
::iterator i=a.
begin()
;i!=a.
end(
);i++
)for
(auto i=a.
begin()
;i!=a.
end(
);i++
)for
(auto x:a)
//c++ 11
pair<
int,
int>
first, 第乙個元素
second, 第二個元素
支援比較運算,以first為第一關鍵字,以second為第二關鍵字(字典序)
string,字串
#include
size()
/length
() 返回字串長度
empty()
clear()
substr
(起始下標,(子串長度)
) 返回子串
c_str
() 返回字串所在字元陣列的起始位址
queue, 佇列
#include
size()
empty()
push
() 向隊尾插入乙個元素
front
() 返回隊頭元素
back
() 返回隊尾元素
pop() 彈出隊頭元素
priority_queue, 優先佇列,預設是大根堆
#include
size()
empty()
push
() 插入乙個元素
top() 返回堆頂元素
pop() 彈出堆頂元素
//定義成小根堆的方式:
priority_queue<
int, vector<
int>
, greater<
int>> q;
stack, 棧
#include
size()
empty()
push
() 向棧頂插入乙個元素
top() 返回棧頂元素
pop() 彈出棧頂元素
deque, 雙端佇列
#include
size()
empty()
clear()
front()
/back()
push_back()
/pop_back()
push_front()
/pop_front()
begin()
/end()
set, map, multiset, multimap, 基於平衡二叉樹(紅黑樹),動態維護有序序列
#include
#include
size()
empty()
clear()
begin()
/end()
++,-- 返回前驅和後繼,時間複雜度 o
(logn)
set/multiset
insert
() 插入乙個數
find
() 查詢乙個數
count
() 返回某乙個數的個數
erase()
(1) 輸入是乙個數x,刪除所有x,時間複雜度o
(k + logn)(2
) 輸入乙個迭代器,刪除這個迭代器
lower_bound()
/upper_bound()
lower_bound
(x) 返回大於等於x的最小的數的迭代器
upper_bound
(x) 返回大於x的最小的數的迭代器
map/multimap
insert
() 插入的數是乙個pair
erase
() 輸入的引數是pair或者迭代器
find()
注意multimap不支援此操作,時間複雜度是 o
(logn)
lower_bound()
/upper_bound
()
unordered_set, unordered_map, unordered_multiset, unordered_multimap, 雜湊表
#include
#include
和上面類似,增刪改查的時間複雜度是 o(1
) unordered_multimap不支援[
] 不支援 lower_bound()
/upper_bound
(), 迭代器的++,--
bitset, 壓位
#include
bitset<
10000
> s;~,
&,|,
^>>
,<<==,
!=[]count
() 返回有多少個1
any(
) 判斷是否至少有乙個1
none
() 判斷是否全為0
set(
) 把所有位置成1
set(k, v) 將第k位變成v
reset
() 把所有位變成0
flip
() 等價於~
flip
(k) 把第k位取反
C STL 中 map 容器的說明和使用技巧
map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map中出現一次,第二個可能稱為該關鍵字的值 的資料 處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑樹 一 種非嚴格意...
C STL使用入門
stl standard template library,標準模板庫 我最開始接觸c 程式設計是從dos下的borland c 開始的。那時他們在最新版本3.1中就包含了一套模板庫用來做collection.那真是個好東東。當我開始使用visual c 2.2的時候,我甚至試圖去把borland公...
C STL使用總結
vector動態陣列 back 返回陣列最後乙個元素。宣告 vector res m,vector n,0 上面的一行宣告了乙個二維陣列m行n列的二維陣列,並且初始化為0 有乙個交換的函式reserve res.begin res.end 將res行交換 第一行變最後 第二行變倒數第二 stack堆...