C 迭代器學習筆記

2021-06-18 14:32:14 字數 1405 閱讀 7252

1、istream_iterator和ostream_iterator的學習

istream_iteratorin(strm):其中表示輸入型別,

strm為istream_iterator指向的流

提供了輸入操作符(>>)

ostream_iteratorout(strm)

:輸出操作符 (<

2.vector::reverse_iterator  宣告乙個逆序迭代器要求與v.rbegin(),v.rend()共同使用

#include #include using namespace std;

template //*宣告乙個類模板,型別名字為t

void printvector(const vector&vec);

int main()

; vectorv; //*定義乙個容器為整形的v

cout<

for(p2=v.rbegin();p2!=v.rend();++p2)

返回乙個逆序迭代器,它指向容器v的最後乙個元素

返回乙個逆序迭代器,它指向容器v的第乙個元素前面的位置

cout<

cout

void printvector(const vector&vec)

3.ostream_iterator是流

迭代器,

流迭代器

是標準模板庫中的,因此是

類模板。

ostream_iterator

指定了型別,就是

迭代器讀寫的型別,

通過這個流

迭代器可以把你要輸入的寫入到指定的流中,

cout就是指定的流,即標準輸出:語句:ostream_iteratoroutput(cout," "):

它看成乙個指向輸出流的指標,通過這個指標你可以把東西寫的輸出流中。

copy (v.begin(),v.end(),output);把向量v中的資料放入cout輸出流中,通過流迭代器output。ostream_iteratoroutput(cout," "),每放乙個整數,就末尾新增乙個空格。

c.at(n):返回下標為n的元素的引用。如果下標越界,則該操作無效

v.insert(v.begin(),a,a+size)在開始前插入6個數即a[0]~a[5]

#include #include #include using namespace std;

int main()

; vectorv(a,a+size); //包含元素[0,6)

ostream_iteratoroutput(cout," ");

cout<

copy(v.begin(),v.end(),output);

cout<

C 學習筆記 迭代器

我們都知道可以用下標運算來訪問string物件和vector物件。而另外還有一種更通用的方法也可以實現這樣的方法。名曰 迭代器 iterator 類似於指標,迭代器也提供了對物件的間接訪問。就迭代器而言,其物件是容器中的元素或者string中的字元。使用迭代器可以訪問某個元素,迭代器也能從乙個元素移...

C 學習筆記(二) 迭代器

迭代器 每種容器都提供了若干共同工作的迭代器型別,與容器型別一樣,所有迭代器都具有相同的介面,即它們都支援某種操作 支援的操作有 iter 指向元素 iter mem 解引用 iter iter 自增 iter iter 自減 iter1 iter2 判斷相等 iter iter2 判斷不等 vec...

c 學習筆記之迭代器

vector迭代器持續有效,除非 1.使用著在較小的索引位置插入或者刪除元素。2.由於容量的變化引起的記憶體重新分配。list迭代器失效 1.將it指向的元素刪除,那麼it則失效 2.用erase刪除元素記得接收返回值,同時最好使用while迴圈。順序容器用乙個容器去初始化另乙個容器,以及用迭代器範...