第11章 泛型演算法

2021-05-04 18:02:49 字數 675 閱讀 1834

泛型演算法本身從不執行容器操作,只是單獨依賴迭代器和迭代器操作實現。

演算法從不直接新增或刪除元素。

back_inserter函式是迭代器介面卡,迭代器介面卡使用乙個物件作為實參,並生成乙個適應其實參行為的新物件。

謂詞是做某些檢測的函式,返回用於條件判斷的型別,指出條件是否成立。

三種插入迭代器的區別在於插入元素的位置不同。

back_inserter,使用push_back實現在容器末端插入。

front_inserter,使用push_front實現在容器前端插入。

inserter,使用insert實現在容器中指定位置插入。

流迭代器不能建立反向迭代器。

使用普通迭代器對反向迭代器進行初始化或賦值時,所得到的迭代器並不是指向原迭代器所指向的元素。

輸入迭代器只能順序使用,一旦輸入迭代器自增了,就無法再用它檢查之前的元素。

map,set和list型別提供雙向迭代器。

string,vector和deque容器上定義的迭代器是隨機訪問迭代器,用作訪問內建陣列元素的指標也是隨機訪問迭代器。

istream_iterator是輸入迭代器。

ostream_iterator是輸出迭代器。

關聯容器的鍵是const物件,關聯容器不能使用任何寫序列元素的演算法。

演算法最基本的性質是需要使用的迭代器種類。

第11章 泛型演算法 2

11.2 初窺演算法 使用泛型演算法必須包含algorithm標頭檔案。標準庫還定義了一組泛化的算術演算法 generalized numeric algorithm 其命名習慣與泛型演算法相同。使用這些演算法則必須包含numeric標頭檔案。11.2.1 唯讀演算法 vectorvec for i...

第11章 泛型演算法 4

11.2.3 對容器元素重新排序的演算法 stdafx.h include using namespace std bool isshorter const string s1,const string s2 bool gt6 const string s stdafx.cpp include st...

第11章 泛型演算法 5

11.3 再談迭代器 1 插入迭代器 insert iterator 這類迭代器與容器繫結在一起,實現在容器中插入元素的功能。2 iostream迭代器 iostream iterator 這類迭代器可與輸入或輸出繫結在一起,用於迭代遍歷所關聯的io流。3 反向迭代器 reverse iterato...