原创 排序算法

注意:以下所有的排序都是按照遞增的順序排序 參考鏈接:https://www.cnblogs.com/fnlingnzb-learner/p/9374732.html 文章目錄1、選擇排序2、冒泡排序3、插入排序4、希爾排序5、歸

原创 操作系統知識點梳理

文章目錄一、編譯和鏈接二、ELF格式文件1、ELF頭2、.text3、.rodata4、.data5、.bss6、.symtab7、.rel.text8、.rel.data9、.strtab10、節頭部表(段表)11、其他有必要說

原创 STL第三章迭代器收貨

一、爲什麼需要traits 首先看一下如下例子: template<class T> class test { public: static T a; }; template<class M> void show() { c

原创 C++11新特性--using

在下面這篇博客中已經講的很清楚了,using的三種使用情況。 https://blog.csdn.net/shift_wwx/article/details/78742459 這裏還是要特別說一下,using有typedef的作用

原创 STL RB tree

一、爲什麼需要紅黑樹 對於一個有序數列,爲了得到對數時間的插入和訪問的速度,提出了二叉搜索樹,這個樹的規則就是任何節點的鍵值一定大於其左子樹中每一個節點的鍵值,並小於右子樹中每一個節點的鍵值。 注意:要和最大堆區別開來,最大堆是父

原创 STL set和map

這兩個容器都是以紅黑樹爲底層機制實現的,set中每個節點只有一個值,也就是把鍵值作爲實值來用,而map中每個節點有兩個值,把鍵值和實值分開 一、set特點 set底層就是紅黑樹機制,並且鍵值就是實值。所有set元素在插入時,就會

原创 STL hashtable

SGI版本的STL中的哈希表以及hash_map和hash_set都沒有被算入C++標準中的,所以在C++標準中的unorder_map和unorder_set纔是最標準化的,其中底層使用的hashtable和我這篇文章中講的ha

原创 STL stack和queue適配器

一、配接器和容器的區別 適配器是以容器爲底層接口封裝的,比如stack和queue都是配接器,因爲他們都是在deque或者list容器的基礎上,進一步封裝,形成自己的特性。而deque和list則是完全不依靠其他容器,自己獨立實現

原创 STL sort函數

sort有兩種重載形式,一種是依靠自定義的比較函數comp的排序函數,一種是依靠<運算符的排序函數。下面的源碼解讀選擇<運算符的版本。 sort函數的流程圖如下 1 提供給外界的接口sort源碼 template <class

原创 STL heap

注意:heap並不是STL的容器或者配接器,但卻是priority queue的底層實現。並且heap運用的是常用的最大堆以及堆排序的方法,所以值得一看 一、最大堆和隱式表示法 heap的數據結構是一個最大堆,最大堆就是一個完全

原创 MySQL必知必會收貨

1.未排序的表中順序 如果插入的數據沒有排序,那麼數據一般將以它在底層表中出現的順序顯示。這可能是數據最初添加到表中的順序。但是如果後來數據進行過更新或刪除,則這個順序就會受到MySQL重用回收空間的影響。因此如果沒有排序,那麼這

原创 CFileDialog使用方法

經常用到這個類,避免每次都去查用法,這裏記錄一下: 用法很簡單,通過下面這個例子就很清楚了: CFileDialog openDlg(TRUE, _T("CLS File(*.cls)|*.cls"), N

原创 STL priority_queue配接器

一、priority_queue介紹 priority_queue是一個擁有權值的queue,queue是先來的後出,而priority_queue是權值大的先出,具體可以查看如下的結構圖: priority_queue的底層是

原创 構造函數和析構函數的權限問題

在ACIS庫中,是不允許構造普通的類對象的,也就是不允許在棧上構建對象。能夠實現這一功能,主要是將類的析構函數設置爲了保護權限,這樣類外對象調用析構函數是非法的,編譯就不會通過。 在C++中析構函數和構造函數默認是public權限