迭代器是乙個可遍歷stl容器全部或部分元素的物件(行為類似於指標的物件)分類依據:迭代器的移動特性以及在這個迭代器上能做的操作迭代器是用來表現容器中某一位置
迭代器緊密依賴於容器,容器裡定義者迭代器具體型別細節。迭代器和容器緊密相關(繫結到一起的)。
迭代器,行為如指標,到處跳,表示乙個位置,一般分類是依據它的跳躍能力,每個分類是對應乙個struct定義.這些結構和分類都是有繼承關係的。
1.輸出型迭代器(output iterator) struct output_iterator_tag;
2.輸入型迭代器(input iterator) struct input_iterator_tag;
3.前向迭代器 (forward iterator) struct forward_iterator_tag;
4.雙向迭代器 (bidirectional iterator)struct bidirectional _iterator_tag;
5.隨機訪問迭代器(random-access iterator) random_access_iterator_tag;
大多數容器都是有迭代器的,stack,queue沒有迭代器。驗證容器的迭代器所屬的種類。
#include
"pch.h"
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
namespace _nmsp1
;//定義乙個容器
for(vector<
int>
::iterator iter = iv.
begin()
; iter != iv.
end();
++iter)
return;}
}namespace _nmsp2
void
_display_category
(bidirectional_iterator_tag mytag)
void
_display_category
(forward_iterator_tag mytag)
void
_display_category
(output_iterator_tag mytag)
void
_display_category
(input_iterator_tag mytag)
template
<
typename t>
void
display_category
(t ite)
;void
func()
//主函式:
}namespace _nmsp3
;for
(auto iter = iv.
begin()
; iter != iv.
end();
++iter)
int abc;
abc =0;
}}intmain()
a)輸出型迭代器 struct output_iterator_tag; 一步一步能往前走,並且能夠通過這個種類的迭代器來改寫容器中的資料;b)輸入型迭代器:struct input_iterator_tag; 一次乙個以向前的方向來讀取元素,按照這個順序乙個乙個返回元素值;
c)前向迭代器:struct forward_iterator_tag;因為繼承自從input迭代器,因此它能以向前的方向來讀取元素,並且讀取時提供額外保證;
d)雙向迭代器:struct bidirectional_iterator_tag:在前向迭代器基礎之上增加了往回(反向)迭代,也就是迭代位置可以回退,新增加如下操作:
e)隨機訪問迭代器:struct random_access_iterator_tag:在雙向迭代器基礎上又增加了所謂的隨機訪問能力:也就是增減某個偏移量,能夠計算距離,還支援一些關係運算等等;
C 11 14之可變參模板
可變參類模板 variadic template 允許模板中有0到任意個模板引數 t emplate typename.t void myfunc t.ar s myfunc 0 0 myfunc 11 23 2 2 myfunc 14 12.4 nj 3 4 4 ar s 稱為一包或者一堆引數,這...
STL容器和迭代器用法歸納(1)
在我所看到的介紹stl的幾本書和文章裡。開頭總要說stl能節省大量的時間和精力,但很多c 程式設計師確不知道,不會用,或不願意用,因為覺得stl不好理解,不好用,複雜。可能也正如這些書中所說,我也經歷過從不用到用的過程,而我身邊也有人還沒有使用stl。但其實只要我們需要儲存資訊,然後查詢這些資訊並使...
STL容器用法與介紹之vector
a vector是乙個封裝了動態大小陣列的順序容器,並支援反轉 b vector是在堆上分配記憶體,並在記憶體中具有連續的儲存空間,它提供了自動記憶體管理功能,隨著元素的增加或刪除,記憶體會同步進行增大或縮小 c 訪問vector中的元素可以通過元素下標實現隨機訪問,也可以通過迭代器實現順序訪問 d...