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迴圈。順序容器用乙個容器去初始化另乙個容器,以及用迭代器範...