第2章 數據和基本類型
1. 整型
2. 習題:左值和右值
3. C++關鍵字/保留字和操作符替代值
4. 聲明,定義, 初始化和賦值是不同的概念。
聲明是說明一個變量的存在,不會為變量進行內存空間的分配。
定義是說明一個變量的存在,同時為這個變量分配對應的內存空間。
初始化就是在進行變量定義的時候在所分配的內存空間中同時填入有意義的值。如果不進行初始化的話,變量雖然有對應的內存空間,但是內存空間中對應 的內容卻是無意義的。
賦值是為已經存在的變量的改寫值,也就是重新擦寫變量內存空間的數據,填入新的數據。
C++中因為有類的存在所以,對初始化進行了更細的劃分,分為直接初始化和復制初始化。
C++對於變量的初始化規定了一些規則:內置類型和類類型是不一樣的,內置類型在函數體外自動初始化為0,函數體內不進行初始化。而類類型的話是調用類的默認構造函數。
5. const變量/對象的初始化
6. 引用聲明後就必須初始化,並且一經初始化就不能再改變。
不能使用const變量來初始化非const引用。
7. 定義變量和定義類成員變量是不一樣的。
第3章 標准庫類型
1.string對象的讀寫
下面的代碼可以從輸入不斷的讀入單詞。
int main(){上面的程序的大致輸出是這樣的:
如果從標准輸入讀入的話,產生的結果是這樣的:每次按回車鍵之後才產生輸出。主要cin是從緩沖區讀取輸入的,只有每次按下回車鍵的時候才將緩沖區進行刷新。
如果是使用管道來進行輸入的話,結果是這樣的
可以看到單詞是通過空白符(空格,回車,制表符)進行劃分的。而結束是根據文件結束符進行判斷的。
getline的使用方法如下:
int main(){
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 Code6. map中的查找操作:count和find函數
7. 一個簡單的單詞轉換程序
View Code運行結果如下:
8. map,set,list差異
9. set的定義與使用
10. 利用set來排除一些常見的單詞,這樣在統計的時候就避開了常見的單詞
View Code11. 容器的綜合應用:文本查詢程序
View Code以該程序源文件為輸入的話,有下面的輸出:
12. 常見常用容器總結
第11章 泛型算法
1. 插入迭代器
2. iostream迭代器
3. 使用copy算法將文件寫入到輸出:
View Code4. 三種迭代器
5. 迭代器分類