原创 泛型編程

《C++11/14高級編程:Boost程序庫探祕》筆記 本章討論Boost庫中的三個泛型編程用的工具 enable_if:在編譯器啓用或禁用特定的泛型代碼 call_traits:非標準元函數,計算類型T可能的多種類型,經常被用於函數的

原创 Boost庫流處理

《C++11/14高級編程:Boost程序庫探祕》筆記 boost.iostreams庫建立在標準庫的IO流框架基礎之上,定義了device、source、sink、filter等新的流處理概念,構造了一套全新的易於使用和定製的流處理框架

原创 多索引容器

《C++11/14高級編程:Boost程序庫探祕》筆記 多索引容器,顧名思義,提供多種對元素的訪問方式。 在有的時候,可能會想對同一組元素執行不同的訪問順序準則,比如既要以順序方式遍歷list裏的元素,又想以大小排序的方式遍歷,又或者想

原创 侵入式容器

《C++11/14高級編程:Boost程序庫探祕》筆記 侵入式容器也是用於容納元素的容器,但元素必須要做出一些代碼上的適度修改才能被容納。與侵入式容器相對應的是非侵入式容器,標準容器和指針容器都屬於非侵入式容器,這類容器不要求對容納的元素

原创 模板元編程

《C++11/14高級編程:Boost程序庫探祕》筆記 模板元編程簡稱元編程,本質上是泛型編程的一個子集,所以從廣義上說,所有使用template的泛型編程都可以稱作元程序——因爲泛型代碼並不是真正可編譯執行的代碼。 模板元編程的運行是

原创 C++新語言

《C++11/14高級編程:Boost程序庫探祕》筆記 右值引用 C++11/14標準使用“T&&”的形式表示右值引用,而原來的”T&”則表示左值引用。 對一個對象使用右值引用,意味着顯式地標記這個對象是右值,可以被轉移來優化,同時相當

原创 區間range庫

《C++11/14高級編程:Boost程序庫探祕》筆記 range庫在迭代器和容器上抽象出了“區間”的概念,基於迭代器和容器,但要求比容器低很多,不需要容納元素,只含有區間的兩個首末端點位置。vector是區間,string是區間,但st

原创 Boost庫中的函數對象

《C++11/14高級編程:Boost程序庫探祕》筆記 函數對象是一個定義了operator()的類,可以像普通函數一樣被調用,又具有類的功能。 hash 散列函數,主要被用於實現各種無序散列容器。位於名字空間boost,頭文件<boos

原创 關於QT5的信號槽語法使用注意事項

轉載https://www.devbean.net/2012/08/qt-study-road-2-catelog/的筆記 一、信號函數有重載 使用函數指針顯示指明使用的信號函數,比如兩個信號函數: void newPaper(const

原创 Boost庫多線程

以下代碼來源於《深入實踐Boost:Boost程序庫開發的94個祕笈》一書 Boost.Thread庫提供了跨操作系統的處理線程的一致接口。這不是一個只包含頭文件的庫,所以,所有例子都需要鏈接libboost_thread和libboo

原创 Boost庫迭代器

《C++11/14高級編程:Boost程序庫探祕》筆記 迭代器模式 ”提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示“ C++標準(C++11.24.2)將迭代器分爲五類:輸入迭代器(只讀迭代器)、輸出迭代器(

原创 指針容器庫

《C++11/14高級編程:Boost程序庫探祕》筆記 很多時候,我們需要在容器中存儲指針而不是元素本身(比如元素不滿足標準容器的要求,存儲抽象類而不是具體類,避免值語義內存拷貝代價),但直接存儲原始指針手法太初級,不安全也難於管理,替代

原创 智能指針管理通過new創建的對象

來自《編寫高質量代碼:改善C++程序的150個建議》讀書筆記 1.auto_ptr 指向一個以new建立的對象,當auto_ptr的生命週期結束時,其所指向的對象之資源也會被自動釋放,且不必顯示地調用delete。 #include <m

原创 提防對象切片

來自《編寫高質量代碼:改善C++程序的150個建議》讀書筆記 多態是C++的重要特徵之一。多態的實現必須依靠指向同一類族的指針或引用,否則,可能出現對象切片的問題。 class Bird { public: Bird(const

原创 STL容器中元素的刪除的慣用法

來自《編寫高質量代碼:改善C++程序的150個建議》讀書筆記 vector<int> intVec{ 1,2,3,4,5 }; for (vector<int>::iterator itr = intVec.begin(); itr !=