STL學習筆記(迭代器配接器)

2022-05-02 22:57:11 字數 1664 閱讀 6628

reverse(逆向)迭代器

reverse迭代器是一種配接器。 重新定義遞增運算和遞減運算。使其行為正好倒置。

如果你使用這類迭代器,演算法將以逆向次序處理元素。所有標準容器都允許使用reverse迭代器來遍歷元素。下面是個例子:

1 #include 2 #include 3 #include 4

using

namespace

std;56

void print(int

elem)710

11int

main()

12

view code

insert(安插型)迭代器

通過這種迭代器,演算法可以執行安插行為而非覆蓋行為。它提供以下操作

c++標準程式庫提供三種insert迭代器:back inserters、front inserters、general inserters。它們之間的區別在於插入位置。

事實上它們各自呼叫所屬容器中不同的成員函式。

顯然,容器本身必須支援insert迭代器所呼叫的函式,否則該種insert迭代器就不可用。

下面展示了back inserters的用法

1 #include 2 #include 3 #include 4 #include "

print.cpp"5

using

namespace

std;67

intmain()

8

view code

stream(流)迭代器

我們可以通過stream迭代器把stream當成演算法的原點和起點。

乙個istream迭代器可用來從input stream中讀取元素,而乙個ostream迭代器可以用來對output stream寫入元素。

1.ostream迭代器

ostream迭代器可以將被賦予的值寫入output stream中。如此一來演算法就可以使用一般的迭代器介面直接對stream執行塗寫動作。下面列出ostream迭代器的各個操作函式。

下面演示ostream迭代器的用法

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;67

intmain()

8

view code

2.istream迭代器

istream迭代器用來從input stream讀取元素。透過istream迭代器,演算法可以從stream中直接讀取資料。

下面是istream迭代器的各項操作函式

下面展示istream迭代器的各項操作

1 #include 2 #include 3

using

namespace

std;45

intmain()

615 }

view code

STL之配接器

adapter 將乙個class的介面轉換為另乙個class的介面。應用於仿函式,functor adapters,價值在於通過它們直接的繫結,組合,修飾能力,幾乎可以無限制地創造出各種可能的表示式。配接操作包括繫結 bind 否定 negate 組合 compose 以及對一般函式或成員函式的修飾...

STL 容器配接器

以底部容器完成所有工作,而具有這種修改某物介面而成為另一種風貌的性質者稱為配接器,因此stl stack queue priority queue都稱為容器配接器。stack是一種先進後出的資料結構,不允許有遍歷行為。stl是以deque作為預設情況下的stack底部結構。deque為底部結構並封閉...

STL學習筆記14 迭代器

所有的容器都定義了自己的迭代器型別,所以一般情況下,不需要再自己新增迭代器標頭檔案。但是如果要使用一些特殊的迭代器,如反向迭代器,或者一些迭代器輔助函式,那麼就需要新增標頭檔案。型別能力 提供者輸入迭代器 一次向前讀取 istream 輸出迭代器 向前寫入 ostream,inserter 前向迭代...