移動(dòng)語(yǔ)義 (1) 替換 高代價(jià)的 copy (2) 支持 創(chuàng)建只允許 move 的類型: std::unique_ptr/std::future/and std::threa...
part4 智能指針 1 裸指針問(wèn)題 (1) 沒(méi)指明 指向 單個(gè)對(duì)象還是數(shù)組 (2) 沒(méi)指明 是否應(yīng)該銷毀 所指內(nèi)容 (3) delete形式必須對(duì): delete / de...
item8 nullptr 優(yōu)先于 0 和 NULL 總結(jié): (1) 0: 0 是 int 型, 編譯器將 應(yīng)該出現(xiàn)指針卻出現(xiàn)0的位置上的0 勉強(qiáng)轉(zhuǎn)換為 空指針 (void*...
part1 類型推斷 item1 模板類型推斷: 即 函數(shù)模板實(shí)參推斷 規(guī)則非常自然 remember: 模板類型推導(dǎo)中 (1) 引用 傳遞的實(shí)參: 忽略 實(shí)參的引用性 (2...
item43: 算法調(diào)用優(yōu)先于手工循環(huán) STL算法內(nèi)部都是循環(huán), 意味著你的手工循環(huán)大多數(shù)可以用STL算法來(lái)完成 而 用STL算法 更高效低散、更安全、更清晰/可維護(hù) 1 更高效...
part6 遍布STL的 functor, 通常應(yīng)該可配接(adaptable), 并經(jīng) function Adapter 進(jìn)一步配接 總結(jié): (1)讓functor 繼承自...
part5 算法 本章2個(gè)目標(biāo) 1 介紹幾個(gè)鮮為人知但很實(shí)用的算法 (1) 忽略大小寫(xiě)的字符串比較 (2) 有效查找容器中最合適的n個(gè)對(duì)象 (3) 容器中一個(gè)區(qū)間內(nèi)元素的統(tǒng)計(jì)...
part4 4種迭代器 (1) 關(guān)系 (2) 是否可相互轉(zhuǎn)換 (3) 是否可混用 (4) 與 容器及其成員函數(shù) 之間的關(guān)系 特定形式的insert和erase, 只有1種迭代...
part3 關(guān)聯(lián)容器 與序列容器區(qū)別 (1) 自動(dòng)排序 (2) 比較是按照等價(jià)(equivalence)而不是相等(equality) (3) set/map 不允許有重復(fù) ...
part2 vector 和 string 2個(gè)最常用的容器 數(shù)組的用途是如此廣泛, 設(shè)計(jì) vector 和 string 的目的是為了代替大多數(shù)應(yīng)用中使用的數(shù)組 Note:...
item1 慎重選擇容器類型 1 STL容器分類 另一種分類方法: 連續(xù)內(nèi)存/基于節(jié)點(diǎn) 的容器 (1) 連續(xù)內(nèi)存容器 元素存放在>=1塊(動(dòng)態(tài)分配的)內(nèi)存中,每塊內(nèi)存中存多個(gè)...
揭開(kāi)使用STL時(shí)各 陷阱的 來(lái)源 / 解決方案的優(yōu)劣 接口與實(shí)現(xiàn)分離: 對(duì)于STL, 不能簡(jiǎn)單地使用這條規(guī)則原因: STL實(shí)現(xiàn)的 通用&特殊性 關(guān)聯(lián)容器: 有更多陷阱 6大部...
1個(gè)簡(jiǎn)單的 引用計(jì)數(shù)智能指針 本代碼取自陳碩的 github 倉(cāng)庫(kù) (1) Ctor: 默認(rèn)RCSP是空 RCSP: 目標(biāo)對(duì)象和RC 指針均為空 => 還沒(méi)產(chǎn)生 RC, 而不...
本文參考 https://zhuanlan.zhihu.com/p/267896855[https://zhuanlan.zhihu.com/p/267896855] 1 深...
1 erase() clear() 比較 iterator erase(iterator pos) iterator erase(iterator first, iterat...
1 hashtable hash functions Note: 自定義類型, 用戶必須寫(xiě) hashFunc, 否則 hashtable 無(wú)法處理 2 hash_set: 模...
1 RB-tree 平衡二叉搜索樹(shù) 按 Key 自動(dòng)排序(默認(rèn)遞增排序, std::less<Key> ) 1.1 節(jié)點(diǎn) 1.2 迭代器 1.3 數(shù)據(jù)結(jié)構(gòu) 2 set: 模板...
STL 算法的操作參數(shù)可以用函數(shù)對(duì)象, 也可以用函數(shù)指針: (模板)函數(shù)實(shí)參推斷可以推斷出操作實(shí)參的類型 不用記算法有沒(méi)有 _if 版本, 代碼測(cè)一下即可, 若有, 把特定元...
特定的數(shù)據(jù)結(jié)構(gòu) 往往是為了實(shí)現(xiàn)/解決 特定的算法 STL 算法共性: 都作用在 由迭代器 [first, last) 所標(biāo)示的區(qū)間上 mutable: 算法運(yùn)算過(guò)程會(huì) 更改 ...