練習16.58
為你的strvec類及你為16.1.2節(第591頁)練習中編寫的vec類新增emplace_back函式。
解答:這個參考623頁的strvec中的emplace_back實現即可。
練習16.59
假定s是乙個string,解釋呼叫svec.emplace_back(s)會發生什麼。
解答:在construct呼叫中的模式會擴充套件除std::forward(s).
練習16.60
解釋make_shared(參見12.1.1節,第401頁)是如何工作的。
解答:【引用】此函式再動態記憶體中分配乙個物件並初始化它,返回指向此物件的shared_ptr。類似順序容器的emplace成員,make_shared用其引數來構造給定型別的物件。
練習16.61
定義你自己版本的make_shared.
解答:
#include #include #include #include #define debug 1
namespace test
}int main()
第十六章 16 1 1節練習
練習16.1 給出例項化的定義。解答 例項化,就是編譯器將乙個函式模板中的型別用乙個具體型別替換的過程。練習16.2 編寫並測試你自己版本的compare函式。解答 這個函式模板的實現,可以參考書中的實現。不過這裡要注意的是,當你的實現中涉及到比較運算子的時候,需要確定你使用的型別支援比較運算子。練...
第十六章 16 2 1節練習
練習16.32 在模板實參推斷過程中發生了什麼?解答 引用 在模板實參推斷過程中改變一起使用函式呼叫中的實參型別來尋找模板實參,用這些模板實參生成的函式版本與給定的函式呼叫最為匹配。練習16.33 指出在模板實參推斷過程中允許對函式實參進行的兩種型別轉換。解答 1.const轉換,可以將乙個非con...
第十六章 16 5節練習
練習16.62 定義你自己版本的hash,並定義乙個sales data物件的unordered multiset。將多條交易記錄儲存到容器中,並列印其內容。解答 這個參考書中的實現吧。練習16.63 定義乙個函式模板,統計乙個給定值在乙個vector中出現的次數。測試你的函式,分別傳遞給它乙個do...