在模板參數,傳遞類名,在 ( 離散 ) 函數參數中,使用函數名 ( myStruct(); 或 myFunc )
內置 <functional> : greater <T>, less<T>, greater_equal<T>, less_equal<T>, equal_to<T>, not_equal_to<T>
自定義: struct strlt{ // 字典排序
bool operator ()(const char* a, const char*b) const{
return strcmp(a,b)<0;
}
};
關聯型容器
容器 |
頭文件 |
|
|
set<Key, Compare, Alloc> |
<set> |
begin() end() clear()empty()size() insert(t/p,t/I,j)erase(k/p/p,q) find(k)~O(logN) count(k) lower_bound(k)~O(logN)upper_bound(k) ~O(logN) |
|
multiset<Key, Compare, Alloc> |
|||
map<Key, Data, Compare, Alloc> |
<map> |
operator[](k) 不要用 insert() |
|
multimap<Key, Data, Compare, Alloc> |
insert(pair) |
方法詳解
類型 |
名稱 |
示例 |
備注 |
容器成員函數 |
begin() end() |
p=c.begin(); p!=c.end(); |
[ c.being(),c.end() ) |
clear() |
c.clear(); |
|
|
empty() |
if( c.empty() ); |
|
|
size() |
int len=c.size(); |
|
|
insert(t/p,t/I,j) |
c.inset(n) (p,n) (pbgn, pend) |
|
|
erase(k /p /p,q) |
c.erase(k) (p) (pbgn, pend) |
|
|
find(k) |
p=c.find(k); |
Y:*p=k N:p=c.end(); |
|
count(k) |
int count= c.count(k) |
|
|
lower_bound(k) |
p=c.lower_bound(k) |
*p>=k 且 p 最前 |
|
upper_bound(k) |
p=c.upper_bound(k) |
*p>k 且 p 最前 |
|
operator[](k) |
day[“Feb”]=28 |
可用于增加,修改 |
類型 |
名稱 |
示例 |
備注 |
|
游離函數 作用于 數組 |
search() |
p=search (s1, s1+ len1, s2, s2 + len2); |
查子串 A(n)O(n*m) |
|
search_n() |
p=search_n(first, last, count, val) |
查重復元素子串 O(l-f) |
||
unique() |
newend=(first,last,myEqual); |
除去重復元素 ( 留首 )=(l-f-1) |
||
unique_copy() |
newend=(first,last,opFirst,myEqual); |
|
||
lower_bound() |
pb=c.lower_bound(first,last,k,myEqual) |
*p>=k 且 p 最前 |
要求升序 log(l-f)+1 |
|
upper_bound() |
pe=c.upper_bound(first,last,k,myEqual) |
*p>k 且 p 最前 |
||
inplace_merge () |
inplace_merge(first,middle,last,myLess); |
[f,m) 和 [m,l) 都升序→ [f,l] 升序 |
||
關于set的: 后三者返回 newEnd |
includes,set_union~max(m,n), set_intersection~min(m,n) set_difference~max(m-n,0),set_symmetric_difference~|m-n| |
可模擬集和多重集, ~ 號后為出現 m 、 n 次的元素出現次數 |
||
關于 heap 的: 全部返回 void |
push_heap~logN p op_heap ~logN m ake_heap~O(3N) sort_heap~O(NlogN) |
參數都是 (f,l,less), push 和 pop 的元素是 *(l-1) |
||
power() |
result=power(T t, int n) |
O(log n) 次乘法 |