C 額外迭代器

2022-08-30 07:36:09 字數 792 閱讀 8233

插入迭代器有三種型別:

back_inserter : 建立乙個使用push_back的迭代器,總是插入到容器最後乙個元素之後。

front_inserter : 建立乙個使用push_front的迭代器,總是插入到容器第乙個元素之前。

inserter : 建立乙個使用inset的迭代器,此函式接受第二個引數,必須是乙個指向給定容器的迭代器,插入到給定迭代器之前。

假定 it = inserter (c,iter) ,則

*it = val;

等同於:

it = c.insert (it ,val);

++ it ;

istream_iterator操作

例如從cin中讀取操作。

istream_iterator int_iter(cin),eof;  //從cin讀取int,eof為尾後迭代器

while(int_iter != eof)

vec.push_back(*in_iter++);

更簡易的迴圈可以用構造完成

vectorvec(in_iter,eof);

ostream_iterator操作

用其輸出值的佇列。

ostream_iteratorout_iter(cout," ");  //每次輸出時後面加乙個空格

for(auto e:vec)

*out_iter++=e;  //賦值語句實為寫出,*和++實際並不會做任何操作

可以使用copy來更簡單的實現:

copy(vec.begin,vec.end,out_iter);

C 迭代器之 反向迭代器

反向迭代器 reverse iterator 是普通迭代器的介面卡,通過重新定義自增和自減操作,以達到按反序遍歷元素的目的。如果在標準演算法庫中用反向迭代器來代替普通的迭代器,那麼執行結果與正常情況下相反。除此之外,其用法與普通迭代器完全一樣,我們不作詳細討論。這裡主要討論的是反向迭代器的乙個很特殊...

C 迭代器 迭代器失效問題

問題描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。這是劍指offer上的一道經典習題,我們首先可以想到的解決方案是 再建立乙個臨時陣列把偶數先存放起來,然後把臨時空間的...

C 迭代器(STL迭代器)iterator詳解

要訪問順序容器和關聯容器中的元素,需要通過 迭代器 iterator 進行,迭代器是乙個變數,相當於容器和操作容器的演算法之間的中介。迭代器可以指向容器中的某個元素,通過迭代器就可以讀寫它指向的元素。從這一點上看,迭代器和指標型別。迭代器按照定義方式分為以下四種 正向迭代器,定義方式 容器類名 it...