《C++程序設計語言》摘要

第16章 庫組織和容器

vector 容器 

insert返回的是新插入元素的迭代器

erase返回的刪除元素之後下一個元素的迭代器

反向迭代器 rbegin(),是指向最後一個元素的迭代器;rend()是指向begin()前一個的迭代器。

遍歷過程中應該對 rbegin() 執行++,而不是--,執行逆序從後向前的遍歷。

反向迭代器reverse_iterator 和 iterator可能類型並不一致。反向迭代器可以用base()函數轉換爲迭代器類型。

一個迭代器,在執行完插入,刪除操作後可能會失效,而不能再使用。因爲插入刪除操作可能會使得vertor指向另外一塊內存。所以需要通過插入、刪除操作的返回值來獲取新的迭代器。


第17章 標準容器

map和hash_map之間最本質的差異就在於:map對其元素類型要求有一個<,而hash_map要求一個== 和 一個散列函數。具體的說,map是用紅黑樹實現的,hash_map是用堆加hash函數實現的。

map是有序的,hash_map是無序的。

如果允許重複鍵值,請使用multimap或multiset。


第21章 流

用戶定義類型的輸出

class complex{

public:

    double real() const{return re; }

    double imag() const{return im; }

}

ostream& operator<<(ostream &s, const complex &z)

{

    return s<<'('<<z.real()<<','<<z.imag()<<')';

}


發佈了49 篇原創文章 · 獲贊 71 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章