原创 stl之list雙向鏈表容器應用基礎

不同於採用線性表順序存儲結構的vector和deque容器,list雙向鏈表中任一位置的元素差值、插入和刪除,都具有高效的常數階算法時間複雜度O(1)。 頭文件 #include<list> 創建list對象 1)list();//創建一

原创 Linux學習筆記之權限與命令之間的關係(重要)及文件與目錄知識總結

一、讓使用者能進入某目錄成爲可工作目錄的基本權限爲何: 可使用的命令:例如 cd 等變換工作目錄的命令; 目錄所需權限:使用者對這個目錄至少需要具有 x的權限額外需求:如果使用者想要在這個目錄內利用 ls 查閱檔名,則使用者對此目錄還需要

原创 stl之deque雙端隊列容器

deque與vector非常相似,不僅可以在尾部插入和刪除元素,還可以在頭部插入和刪除。不過當考慮到容器元素的內存分配策略和操作性能時,deque相對vector較爲有優勢。 頭文件 #include<deque> 創建deque對象 1

原创 stl之set集合容器應用基礎

  set集合容器使用一種稱爲紅黑樹(Red-Black Tree) 的平衡二叉檢索樹的數據結構,來組織泛化的元素數據。每個節點包含一個取值紅色或黑色的顏色域,以利於進行樹的平衡處理。作爲節點鍵值的元素的插入,必須確保每個子樹根節點的鍵值

原创 stl之queue隊列容器

queue隊列也是一個線性存儲表,元素的數據插入在表的一端進行,在另一端刪除,從而構成先進先出表。插入一端爲隊尾,刪除的一端爲隊首。 由於僅需取隊首和隊尾元素的操作,因此queue隊列容器並不提供任何類型的迭代器對隊列中其他

原创 stl之vector的應用

這裏主要是對vector容器的一些常見應用的總結。至於vector的構造函數及初始化可以參考http://blog.csdn.net/lsh_2013/article/details/21191289,這裏不再贅述。 元素的遍歷 用迭代器

原创 判斷二叉樹是不是平衡二叉樹

題目:輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵二叉樹。         我們

原创 最小二乘法擬合多項式原理以及c++實現

轉載請註明出處:http://blog.csdn.net/lsh_2013/article/details/46697625 最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。 c++

原创 Linux文件的搜尋

1 腳本文件名的查詢 which(尋找“執行文件”) # which [-a] command 選項或參數: -a :將所有由 PATH 目錄中可以找到的命令均列出,而不止第一個被找到的命令名稱 注意:這個命令是根據PATH這個環境變量

原创 面試題之求二叉樹的深度

題目:輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉子結點一次經過的結點形成樹的一條路徑,最長路徑的長度爲樹的深度。根節點的深度爲1。 struct BinaryTreeNode{ int m_nValue; BinaryTree

原创 stl之multimap容器

multimap與map一樣,都是使用紅黑樹對記錄型的元素數據按元素鍵值的比較關係,進行快速的插入、刪除和檢索操作,所不同的是multimap允許插入具有重複性鍵值的元素。 在multimap容器中,元素的鍵值與元素的映照數據的

原创 stl之stack容器

爲了嚴格遵循堆棧數據後進先出原則,stack不提供元素的任何迭代操作,因此stack容器不會向外部提供可用的前向或反向迭代器類型。 頭文件#include<stack> 創建stack對象 stack() 默認的構造

原创 sift算法c語言實現

前段時間在做三維測量方面的研究,需要得到物體表面三維數據,sift算法是立體匹配中的經典算法,下面是對RobHess的SIFT源代碼的註釋。部分內容參考網上,在這裏向各位大神表示感謝! http://blog.csdn.net/

原创 文件與目錄的默認權限與隱藏權限

除了基本r, w, x權限外,在Linux的Ext2/Ext3文件系統下,我們還可以配置其他的系統隱藏屬性, 這部份可使用 chattr來配置,而以 lsattr 來查看。   文件默認權限:umask umask 就是指定目前使用者在創

原创 stl之bit_vector原理及應用

原理   bit_vector容器具有vector容器一樣的成員西數,常用於硬件端口的控制。區別於vector的一個重要特徵是bit_vector更節省內存空間,一個元素只佔用一個bit ,而不是一個字節。 bit_vector