程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 讀書筆記之:C++ Primer (第4版)及習題(ch01-ch11) [++++],primerch01-ch11

讀書筆記之:C++ Primer (第4版)及習題(ch01-ch11) [++++],primerch01-ch11

編輯:C++入門知識

讀書筆記之:C++ Primer (第4版)及習題(ch01-ch11) [++++],primerch01-ch11


讀書筆記之:C++ Primer (第4版)及習題(ch01-ch11) [++++]

第2章 數據和基本類型

1. 整型

2. 習題:左值和右值

3. C++關鍵字/保留字和操作符替代值

4. 聲明,定義, 初始化和賦值是不同的概念。

聲明是說明一個變量的存在,不會為變量進行內存空間的分配。

定義是說明一個變量的存在,同時為這個變量分配對應的內存空間。

初始化就是在進行變量定義的時候在所分配的內存空間中同時填入有意義的值。如果不進行初始化的話,變量雖然有對應的內存空間,但是內存空間中對應 的內容卻是無意義的。

賦值是為已經存在的變量的改寫值,也就是重新擦寫變量內存空間的數據,填入新的數據。

C++中因為有類的存在所以,對初始化進行了更細的劃分,分為直接初始化和復制初始化。

C++對於變量的初始化規定了一些規則:內置類型和類類型是不一樣的,內置類型在函數體外自動初始化為0,函數體內不進行初始化。而類類型的話是調用類的默認構造函數。

5. const變量/對象的初始化

6. 引用聲明後就必須初始化,並且一經初始化就不能再改變。

不能使用const變量來初始化非const引用。

7. 定義變量和定義類成員變量是不一樣的。

 

第3章 標准庫類型

1.string對象的讀寫

下面的代碼可以從輸入不斷的讀入單詞。

復制代碼 int main(){
string word;
while(cin>>word)
cout<<word<<endl;

} 復制代碼

上面的程序的大致輸出是這樣的:

如果從標准輸入讀入的話,產生的結果是這樣的:每次按回車鍵之後才產生輸出。主要cin是從緩沖區讀取輸入的,只有每次按下回車鍵的時候才將緩沖區進行刷新。

如果是使用管道來進行輸入的話,結果是這樣的

可以看到單詞是通過空白符(空格,回車,制表符)進行劃分的。而結束是根據文件結束符進行判斷的。

getline的使用方法如下:

復制代碼 int main(){
string line;
while(getline(cin,line))
cout<<line<<endl;
} 復制代碼

 

8. bitset類型

 

第4章 數組和指針

1. 指針與引用

2. 動態數組的初始化

 

第5章 表達式

1. C++中前置操作符還是後置操作符

2. 動態創建對象時的默認初始化。

3. 刪除const對象,使用delete來收回內存

4. C++中的類型轉換

 

第6章 語句

1. 標准庫異常

第7章 函數

1. 形參與實參:形參是變量,實參是表達式。

2. const形參

對於C++內置類型,由於采用的是值復制的方式,所以加const與否都是無影響的。

如果形參是引用的形式,采用const和非const的情況就不一樣了。

3. const成員函數

4. 構造函數

默認構造函數,構造函數的初始化列表

5. 實參類型的轉換

C++支持函數重載,所以就存在函數的匹配問題。在進行函數匹配的過程中,如果沒有找到最佳匹配的話,需要進行實參類型的轉換來尋找次優的匹配。

6. const參數與重載

7. 習題,枚舉類型對象只能用同一枚舉類型的另一對象或一個枚舉成員進行初始化。

8. const引用形參

下面的函數是錯誤的

void swap(const int &a,const int &b){

int tmp=a;

a=b;

b=a;

}

const在此處的用法就是防止對傳入形參的修改。

 

下面的函數也是錯誤的:

void swap(const int *a,const int *b){

int tmp=*a;

*a=*b;

*b=tmp;

}

const的作用就是說明指針指向的地方是只讀的,不允許修改。

 

9.C++中函數指針的不同寫法

函數重載存在時,必須對函數指針進行精確的匹配

 

第8章 標准IO庫

1. IO流類的繼承關系以及所在的頭文件

2. IO對象不可復制或賦值

3. C++中的IO流的最大的特點就是有流的狀態,可以通過判斷流的狀態

 

4. 文件流對象的使用

 

 

第9章 順序容器

1. 順序容器中定義的類型

2. swap操作節省刪除元素的成本

3. vector容器的自增長

5. string中的substr,append和replace操作

 

6. string類型的操作操作,這個其實挺重要的,可以借助這個類find操作完成很多工作。

 

下面是string幾個查找函數的例子:

View Code

View Code

下面的程序不嚴格的事這個習題的程序,該程序只是找到一個個的單詞。

View Code

第10章 關聯容器

1.STL中的關聯容器

在C++11中添加了unordered_map,unordered_set,unordered_multimap,unordered_multiset. 這四個容器其實就是常見的hash_map,hash_set, hash_multimap, hash_multiset

2. pair類型

  3. map容器定義的類型

對map迭代器進行解引用得到的是pair類型

4. map下標訪問的特殊之處

5. map的insert操作

統計單詞數目的一個簡單程序:

View Code

6. map中的查找操作:count和find函數

7. 一個簡單的單詞轉換程序

View Code

運行結果如下:

8. map,set,list差異

9. set的定義與使用

10. 利用set來排除一些常見的單詞,這樣在統計的時候就避開了常見的單詞

View Code

11. 容器的綜合應用:文本查詢程序

View Code

以該程序源文件為輸入的話,有下面的輸出:

12. 常見常用容器總結

第11章 泛型算法

1. 插入迭代器

2. iostream迭代器

3. 使用copy算法將文件寫入到輸出:

View Code

4. 三種迭代器

5. 迭代器分類

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved