Time of Update: 2015-08-25
標籤:C++ 11開發環境的搭建(Windows Platform)Code::BlockIDE:Code::Blocks 12.11版本號碼Compiler:TDM-GCC http://tdm-gcc.tdragon.net/
Time of Update: 2015-08-25
標籤:工作中遇到一個引用臨時變數的問題,經過兩天的學習,私以為:不僅弄明白了這個問題,還有些自己的獨到見解。這裡使用一個簡單的例子來把自己的學習過程和理解獻給大家,如果有什麼問題請不吝指正。 *************************Code************************* class Dog{public: Dog(){} virtual 
Time of Update: 2015-08-25
標籤:KMP演算法假定瞭解案例的原則,其實很easy。KMP演算法簡述關於根據自己的理解在這裡。KMP三位發明者(Knuth、Morris、Pratt)的首字母組成,又稱字串尋找演算法。個人認為能夠理解為最小回溯演算法,即匹配失效的時候,盡量少回溯。從而縮短時間複雜度。KMP演算法有兩個關鍵的地方,1)求解next數組。2)利用next數組進行最小回溯。1)求解next數組next數組的取值僅僅與模式串有關,next數組用於失配時回溯使用。在簡單版本號碼的KMP演算法中。每一個位置
Time of Update: 2015-08-25
標籤:c++ 函數模板 C++為我們提供了函數模板機制。所謂函數模板,實際上是建立一個通用函數,其函數類型和形參類型不具體指定,用一個虛擬類型來代表。這個通用函數就稱為函數模板。 凡是函數體相同的函數都可以用這個模板來代替,不必定義多個函數,只需在模板中定義一次即可。在調用函數時系統會根據實參的類型來取代模板中的虛擬類型,從而實現了不同函數的功能。
Time of Update: 2015-08-25
標籤:c++常用術語 c++ (1)back_inserter 這是一個迭代器適配器,它接受一個指向容器的引用,產生一個插入迭代器,當我們通過此迭代器賦值時,賦值運算子會調用push_back將一個具有給定值的元素添加到容器中。 例如: vector<int> vec;
Time of Update: 2015-08-25
標籤:鏈棧 運算子多載 對於編程,向來都是編的少,看的多,這種錯誤的學習方法一直延續至今,所以像運算子多載這麼簡單的東西,還是不太熟,今天藉著學習棧的機會,自己寫了一下鏈棧中賦值運算子的重載函數,寫完之後對比了一下教材(《資料結構C++語言描述》任燕版),發現自己真是有種簡單問題複雜化的天賦——寫程式按部就班,不會最佳化。順便發現了教材中一個小小的錯誤,在此加以糾正。鏈棧賦值運算子的重載(自己寫的重載函數)
Time of Update: 2015-08-25
標籤:c++ 庫 abi 二進位相容性 一.動態連結程式庫的ABI 動態連結程式庫的相容性是由於庫的ABI(Application binary
Time of Update: 2015-08-25
標籤:class c++ dynamic_cast typeid rtti RTTI通過運行時類型識別——RTTI,程式能夠使用基類的指標或引用來檢索這些指標或引用所指對象的實際衍生類別類型:其主要通過兩個操作符來實現:1.typeid——返回指標或引用所指對象的實際類型;2.dynamic_cast——將基類類型的指標或引用安
Time of Update: 2015-08-25
標籤:1,指標概述1>、分配一個盒子,盒子要多大? 在32bit系統中,指標就4個位元組2>、盒子裡存放的地址 所指向 記憶體的讀取方法是什嗎?例如int *p, char *p ps: 指標指向記憶體空間,一定要保證合法性2,指標+修飾符1>const :常量、唯讀【不能變】寫法:都是一樣的,但最後一種更為嚴格const char *p;
Time of Update: 2015-08-25
標籤:1. 雖然一般情況下傳參使用const-by-reference-to-const比較好,但傳回值有時必須是對象而不是引用: 當reference綁定到函數內建立的局部對象時,函數調用結束後引用綁定在一個不存在的對象; 當reference綁定到堆記憶體對象時,函數調用後比較容易忽略記憶體釋放,特別對於以下運算式:w=x*y*z.如果operator*返回指向堆記憶體的引用,那沒記憶體泄露是必然的;
Time of Update: 2015-08-25
標籤:1. 以reference-to-const傳遞參數的優點: 避免局部對象的構造和析構,節省時間和空間; 避免參數衍生類別對象向基類對象傳遞時的"對象切割",實現物件導向;2.
Time of Update: 2015-08-25
標籤:1. 設計類時,應該將成員變數聲明為private,盡量避免使用者對成員變數的直接存取,使使用者只能通過函數介面訪問成員,這樣利於實現封裝,特別是當類需要改變(添加或減少成員變數)時,只需要改變介面實現,對於使用者來說只需要重新編譯即可(否則類的使用者需要修改大量對成員變數進行訪問的代碼)2. protect並不比private更具封裝性,特別是涉及到繼承時,因此存取權限根據封裝新只有兩種:private和其他.Effective C++ 條款22 將成員變數聲明為private
Time of Update: 2015-08-25
標籤:1.我們可以把一個檔案存入一個string對象,使用string類不必擔心記憶體配置,但是,如果是我們要把每一行分配給一個string,要知道有多少個string執行個體只有讀完後才知道。2.如果有某種“容器”對象,能夠容納所有的不同的對象,C++標準容器類,它是C++的一個重要的強大工具。3.人們經常會把標準庫中的”容器“和”演算法“與被稱為”STL“(標準模板類庫)混淆。STL就是一個叫Al
Time of Update: 2015-08-25
標籤:物件導向和面向過程的區別 面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。 物件導向是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。1. 對象
Time of Update: 2015-08-25
標籤:在C#中,委託和事件是比較容易混淆的兩個知識點,本篇部落格就記錄一下委託和事件之間的區別。定義上的區別委託:委託實際上是一個類,用來表示一個函數,可以理解為C++中的函數指標。事件:事件是一個修飾符,用來修飾一個委託類型的屬性,表示該委託的部分功能被限制了。我們可以這麼理解:委託是類,定義了委託後,就可以像使用類一樣的來使用這個委託,而事件修飾了委託後則是表示限制這個委託的部分功能,使其滿足作為事件的規則。那麼事件究竟限制了委託的什麼功能呢?主要是下面的這兩個限制:調用的限制委託的調用沒有
Time of Update: 2015-08-25
標籤: ////// exec proceudre2 //System.Data.SqlClient.SqlConnection sqlcon = new
Time of Update: 2015-08-25
標籤:/// <summary>/// [email protected]/// </summary>public class MyRAS { /// <summary> /// RAS加密 /// </summary> /// <param name="xmlPublicKey">公開金鑰</param> /// <param
Time of Update: 2015-08-25
標籤:時間限制: 1 Sec 記憶體限制:32 MB提交: 40 解決: 29[提交][狀態][討論版]題目描述Chicken and rabbits are in a same cage. As we all know, chicken has two legs but rabbit has four. Nowwe know the number of legs in the cage is A, please tell me how many
Time of Update: 2015-08-25
標籤:class phone{ private String brand; private int price; private String color; public String getBrand(){ return brand; } public int getPrice(){ return price; } public String getColor(){ return
Time of Update: 2015-08-25
標籤: 1 /* 2 標準代碼 3 4 學生類: 5 成員變數:name,age 6 構造方法:無參,帶兩個參 7 成員方法:getXxx()/setXxx(),show 8 9 給成員變數賦值:10 ①setXxx()靈活性高11 ②構造方法。12 13 輸出成員變數值:14 ①getXxx()靈活性高15 ②通過調用show()方法。16 */17 18 class Student{19 private String name;