1.
關鍵字const作用
1.1const 用來定義唯讀變數
定義時,const可以放在型別說明符前或者後面
int const i = 2 const int i = 2
1.2定義或說明乙個唯讀陣列
int const a[5] = ; 或 const int a[5] =
1.3 const 修飾指標
先忽略型別名(編譯器解析的時候也是忽略型別名),我們看const離哪個近,「近水樓台先得月」,離誰近就修飾誰。
const (int) *p //const 修飾*p,p是指標,*p是指標指向的物件,不可變。
(int) const * p; //const 修飾*p,p是指標,*p是指標指向的物件,不可變。
( int) * const p;//const 修飾p,p不可變,p指向的物件可變
const ( int)* const p; // 前乙個const修飾*p,後乙個const修飾p,指標p和p指向的物件都不可變
1.4 const 修飾函式引數
使引數值在函式體內不會被任意改變
void fun(const int *p);
1.5const修飾符也可以修飾函式的返回值,返回值不可被改變。例如:
const int fun(void);
2.typedef 是賦予現有型別乙個新的名字,而不是建立新的型別。
3.static
3.1static修飾區域性變數
在全域性資料區分配記憶體
不顯示初始化的話,將被隱式初始化為0
作用於為區域性作用域,當定以他的函式或語句結束時,其作用也隨之結束
3.2static 修飾全域性變數
在全域性資料區分配記憶體
不顯示初始化的話,將被隱式初始化為0
作用域只能在本檔案內,即只能在本檔案使用
3 .3 static 修飾函式
靜態函式只能在本原始檔使用
3.3c++中static 作用
3.3.1
資料成員前 + static
對類的多個物件而言,靜態資料成員只分配一次記憶體,由該型別的類的物件所共享,
靜態資料成員儲存在全域性資料區,靜態成員定義時要分配記憶體,所以不能在類中定義,要在累的外部對資料成員進行初始化。
靜態資料成員有兩個優勢:
1. 靜態資料成員沒有進入程式的全域性名字空間,因此不存在與程式中其它全域性名字衝突的可能性;
2. 可以實現資訊隱藏。靜態資料成員可以是private成員,而全域性變數不能;
3.3.2
靜態成員函式
。類的內部宣告,外部進行函式實現
。靜態成員之間可以相互訪問
。非靜態成員之間不能相互訪問,但是非靜態資料函式可以任意訪問靜態成員函式和靜態資料成員
。靜態成員函式不能訪問非靜態的
。靜態成員函式由於不是與任何的物件相聯絡,沒有this指標,效率會提高
4.explicit 關鍵字
用來禁止建構函式進行隱式轉換
5.list 刪除相同元素 remove(1)
6.封裝乙個執行緒類,要求類的例項一被建立就啟動乙個執行緒,並以類的乙個成員函式作為執行緒工作函式
筆試整理 六
1.哈夫曼樹 最優二叉樹 給定n個權值作為n個 葉子結點,構造一棵二叉樹,若帶權路徑長度達到最小,稱這樣的二叉樹為最優二叉樹,也稱為哈夫曼樹 huffman tree 哈夫曼樹是帶權路徑長度最短的樹,權值較大的結點離根較近。2.基本術語編輯 哈夫曼樹 霍夫曼樹 又稱為最優樹.1 路徑和路徑長度 在一...
筆試題整理
n副撲克,張數為m,大小為1 m,每幅撲克抽一張,求和恰好為k的組合數,結果對10e9 7取餘數。思路 動態規劃。和為i,j副撲克,dp i j dp i 1 j 1 dp i m j 1 此處需要判斷 i m 0 初始化,j 1,i m,dp i j 1 i j,dp i j 1,後面的情況不可能...
筆試面試 經典筆試題整理
以下內容全部整理自網路。把整數關鍵碼k雜湊到n個槽列表,最好的雜湊函式是 h k k rand n mod n,rand n 返回0到n 1的整數 初始資料集的排列順序對演算法的效能無影響的是 堆排序 堆排序 最優時間複雜度o nlogn 最差時間複雜度o nlogn 平均時間複雜度o nlogn ...