原创 【二分查找】查找數組中第一個比k大的數的下標

提示:當left和right都是非負數時,使用 mid = left + (right - left) / 2;這種形式可以避免溢出。             當left和right一個爲負另一個爲非負時,用mid = (left +

原创 如何判斷單鏈表有環?若有環,找出其入口地址

問題:如何判斷單鏈表有環?若有環,找出其入口地址 1 如何判斷單鏈表有環? 思路:對於如何判斷鏈表有環,可以從起點發出兩個指針,一個一次一步,另一個一次兩步,如果兩個指針相遇,那麼這個單鏈表就有環。  2 若有環,找出其入口地址 第一問得

原创 C++知識點19

1.      常指針:常指針可以指向常變量或者非常變量,那麼指向非常變量時,就不允許使用常指針對這個變量進行修改。 2.      對於函數的形參:必須保證形參的要求高於或者等於實參的要求。也就是實參爲常變量的話,那麼形參必須爲常變量,

原创 C++知識點16

1.      常對象:常對象不能調用該對象的非const型成員函數。 2.      常成員函數:void get_time() const;這樣就聲明爲常成員函數了。 3.      使用常成員函數修改常對象的變量:提供了mutabl

原创 C++知識點22

1.      靜態數據成員初始化:只能在類體外初始化,int Box::height = 10;,並且不能使用參數初始化表對靜態數據成員進行初始化。   如果在類外使用非私有的靜態數據成員時,格式爲 Box::height,因爲靜態數據

原创 C++知識點8

1.      string類的每個對象,大小都是4個字節,因爲這個對象是字符串的的首地址,也就是一個指針。 2.      string對象的大小比較:從頭開始,出現一個字母大小有差別就按照這個大小判斷。 3.      new 和 d

原创 C++知識點17

1.      非常成員函數:可以引用常數據成員,但是不能修改;不能引用常對象的數據成員。 2.      常數據成員、常成員函數、常對象:1)非成員函數可以引用常數據成員,並對非常數據成員進行修改。2)如果要求所有的成員數據成員都不允許

原创 C++知識點9

1.      類是對象的抽象,而對象是類的具體實例。 2.      類的成員屬性:默認的成員屬性是私有的(缺省時)。 3.      類和結構體的異同:struct的類成員,如果不做聲明,那麼默認是public的,而class則默認的

原创 C++知識點13

1.      無參構造函數:Box box1;而不要寫成Box box1(); 默認的構造函數時不加括號的。 2.      使用默認參數的構造函數:聲明Box(int h = 10,int w = 10,int len = 10); 

原创 C++知識點18

1.      常對象:常對象只是保證其中的數據成員不被修改,而不代表常對象中的成員函數也都是常成員函數,不加const修飾,成員函數就還是非const成員函數。常成員函數不能調用另一個非常成員函數。 2.      指向對象的常指針:初

原创 C++知識點12

1.      帶參數初始化表對數據成員初始化:Student::Student(int n= 0,string na= "NUL"):num(n),name(na){…},就可以通過Student st(123,”Zhang”);來初始

原创 C++知識點10

1.      一般函數和類函數作爲內聯函數的區別:一般函數只要在聲明或者定義時,作inline聲明就可以了;而類函數就需要將類定義和成員函數的定義必須都放在同一個頭文件中。 2.      對象的存儲空間:一個對象的存儲空間大小就是成員