原创 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