原创 SGI STL中的sort源碼
[TOC] # 實現原理 STL中的sort不是普通的快排,除了對普通的快速排序進行優化,它還結合了插入排序和堆排序。根據不同的數量級別以及不同情況,能自動選用合適的排序方法。當數據量較大時採用快速排序,分段遞歸。一旦分段後的數據量
原创 QT跨平臺
[TOC] # 判斷Debug還是Realease ```C++ #ifdef QT_NO_DEBUG qDebug() << "release mode"; #else qDebug() << "debug mode";
原创 c語言編譯模型
![](https://leanote.com/api/file/getImage?fileId=5cd6a0ceab644169d1000393) ![](https://leanote.com/api/file/getImage
原创 空間配置std::alloc
[TOC] # 設計哲理 - 向system heap申請空間 - 考慮多線程狀態 - 考慮內存不足時的應變措施 - 考慮“小塊”造成內存碎片問題
原创 c++11/14實現的對象池
[TOC] # 源碼實現 ``` #ifndef OBJECT_POOL_HPP #define OBJECT_POOL_HPP // Author:Simon // Email :[email protected] #inclu
原创 C++11/14可變模板參數
[TOC] # 1.遞歸方式展開可變模板參數 - 展開函數; - 遞歸中止函數 ``` template<typename T> T sum(T t) { return t; } template<typename T,typen
原创 std::tr1::bind()和std::tr1::function()的例子
[TOC] # 線程庫的常規設計 庫提供一個`Thread`的基類,裏面有(純)虛函數`Thread::run()`,我們需要從`Thread`派生一個基類,然後覆寫`run()·函數,然後`start()`運行線程。 # 基於std
原创 LionPrint_help_cn
[TOC] ----------- > `提示:` `1.請提前退出360,騰訊安全管家等殺毒軟件,` `2.安裝程序(setup.exe)所在路徑必須爲英文路徑。` # 1.禁用強制簽名[Disable Driven Forc
原创 移動語義和完美轉發
[TOC] # 引用 - 左值引用, 使用 `T&`, 只能綁定左值 - 右值引用, 使用 `T&&`, 只能綁定右值 - 常量左值, 使用 `const T&`, 既可以綁定左值又可以綁定右值 - 已命名的右值引用,編譯器會認爲
原创 STL中__type_traits
[TOC] # 概述 `iterator_traits`是萃取迭代器的特性,而`__type_traits`是萃取型別的特性。萃取的型別如下: - non-trivial default ctor? - non-trivial c
原创 設計的接口
# std::tr1::bind()和std::tr1::function()設計的接口 ```C++ class Penguin //企鵝能游泳能跑 { public: void run(); void swin(); };
原创 HashTable實現
[TOC] # Hash函數設計 ## 整數 ``` hash(126) = (1 * 10^2+2 * 101+6 * 10^0) ``` ## 字符串 公式: ``` hash(code) = (c * B^3 + o * B^
原创 fillet
```C++ int SketchObject::fillet(int GeoId1, int GeoId2, const Base::Vector3d& refPnt1, const
原创 stl::set算法
[TOC] # 並集 ``` int a[] = { 1,2,3,4,5,6, 7}; int a1[] = { 1,1,2,3,4,5,6,8,10 }; std::ostream_iterator<int> oiter(std::
原创 向量的基本性質
[TOC] # 基本性質 1. $$ \vec a + \vec b = \vec b + \vec a $$ 2. $$ (\vec a + \vec b) + \vec c = \vec a + (\vec b + \vec