筆試整理四

2021-08-09 22:31:00 字數 1580 閱讀 7213

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 ...