原创 smartPointer

一、簡介 由於 C++ 語言沒有自動內存回收機制,程序員每次 new 出來的內存都要手動 delete。程序員忘記 delete,流程太複雜,最終導致沒有 delete,異常導致程序過早退出,沒有執行 delete 的情況並不罕見。(主要

原创 調用empty而不是檢查size()是否爲0,來判斷容器中是否有零個元素

結論:我們應該使用empty形式,理由很簡單:empty對所有標準容器都是常數時間操作,而一些list實現,size話費線性時間。

原创 如果容器中包含了通過new操作創建的指針,切記在容器對象析構前將指針delete掉

當容器中包含的是通過new的方式分配的指針時,指針容器在自己被析構時會析構所包含的所有元素,但指針的“析構函數”不做任何事情!它當然也不會調用delete 1.可用於for_each的僞函數 template<typename T> s

原创 數組中的逆序對

題目:輸入一個數組,求出這個數組中的逆序對的總數 例如在數組中{7,5,6,4}中,一共存在5個逆序對,分別是(7,6),(7,5),(7,4),(6.4),(5,4). 解:該題目採用歸併排序的方式; (a)把長度爲4的數組分解成連個長

原创 面試題_單鏈表環的問題

問題:有一個單鏈表,其中可能有一個環,也就是某個節點的next指向的是鏈表中在它之前的節點,這樣的鏈表的尾部形成一環。 1、如何判斷一個鏈表是否存在環? 2、如果鏈表存在環,如何找到環的入口點? 問題1分析:設置兩個指針fas

原创 異或運算

異或運算法則   1. a ^ b = b ^ a (對稱性)   2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; (結合性)   3. d = a ^ b ^ c 可以推出 a = d ^

原创 類型轉換string,char,int,double

        char cArr[4]={'a','b','c','\0'};string s=cArr; cArr=s.c_str(); //s

原创 程序員必備的七大面向對象設計原則(二)

二、依賴倒轉原則                 1.依賴倒轉原則定義                         i. 高層模塊不應該依賴低層模塊,它們都應該依賴抽象。抽象不應該依賴於細節,細節應該依賴於抽象。  

原创 oracle卸載

1、Windows 2000+ORACLE 8.1.72、ORACLE安裝路徑爲:C:\ORACLE 實現方法: 1、 開始->設置->控制面板->管理工具->服務 停止所有Oracle服務。 2、 開始->程序->Oracle - Or

原创 java 泛型數組 深度解析

泛型數組 只能作爲參數類型 或者 函數參數 在Java中,Object[]數組可以是任何數組的父類,或者說,任何一個數組都可以向上轉型成父類的數組,這個時候如果我們往裏面放不同於原始數據類型 但是滿足後來使用的父類類型的話,編譯不會有問

原创 程序員必備的七大面向對象設計原則(三)

五、接口隔離原則 1. 定義         i.  客戶端不應該依賴那些它不需要的接口。         ii.  一旦一個接口太大,則需要將它分割成一些更細小的接口,使用該接口的客戶端僅需知道與之相關的方法即可。  2.分析  

原创 n個骰子的點數和

原題依然來源於網絡中某位大俠的BLOG,感謝提供素材:)   寫這篇blog是因爲原文中提到的方法和原文評論中的方法相關比較大,評論中的方法用到了DP,效率好很多。後來仔細想想,這種實現方法用“表格法”來解釋更恰當,至底向上

原创 用1 ×2 的瓷磚覆蓋8 ×8 的地板,有多少種方式呢?

這個題在POJ上有,地址是:http://acm.pku.edu.cn/JudgeOnline/problem?id=2411以前做過這個題,是用狀態DP來做的。大致說下方法,DP需要用到兩維,一維表示到達哪一行,另一維表示這一行的狀態。

原创 activity直接的參數傳遞

l爲Intent附加數據的兩種寫法 第一種寫法,用於批量添加數據到Intent: Intent intent = new Intent(); Bundle bundle = new Bundle();//該類用作攜帶數據 bundle.

原创 Windows下安裝QT並運行第一個程序

Windows下QT的安裝: 在windows下面,先安裝MinGW,然後安裝QT,安裝過程比較簡單,根據提示可以搞定.. 注意:在安裝QT的過程中,會提示選擇MinGW的安裝目錄,也會提示自動設定環境變量(默認會自動設定)   ----