1. 迭代器的存在價值:為所有容器提供一組公共介面,可以遍歷容器中所有元素,可以看做是一種smart pointer,因為它過載了++和 * 運算子
2. 四種隨機迭代器
vector<...>::iterator - 正向迭代器(相當於指標)
vector<...>::const_iterator - 常正向迭代器
vector<...>::reverse_iterator - 反向迭代器
vector<...>::const_reverse_iterator - 常反向迭代器
假設已經宣告了乙個 vector型別的 ivec 變數,要把所有的元素值重新設定為 0,我們可以用下標操作或用迭代器操作兩種方式來完成 :
for( vector::size_type ix=0; ix < ivec.size(); ++ix )
ivec[ix] = 0;
for( vector::iterator iter = ivec.begin(); iter != ivec.end(); ++iter )
*iter = 0
注意這裡用的不是"
通過vector<...>呼叫,begin()返回起始迭代器,end()返回終止迭代器,最後乙個元素的下乙個位置。rbegin()返回起始反向迭代器(最後乙個元素),rend()返回終止反向迭代器(第乙個元素的前乙個)
迭代器支援自增和解引用運算(*操作符)
支援算數運算
3. 注意:
stl沒辦法檢查迭代器是否失效,任何無效迭代器的使用都可能導致執行時錯誤。當程式設計師使用乙個容器的insert或者erase函式通過迭代器插入或刪除元素"可能"會導致迭代器失效,所以需要程式設計師自己注意
STL 之隨機訪問迭代器
隨機訪問迭代器是可以隨機訪問容器中的元素的雙向迭代器。這種迭代器在vector,dequeue,string,和陣列型別容器上使用。在雙向迭代器上定義的操作也使用於隨機訪問迭代器。操作 raccessiterator n 下標訪問 raccessiterator n 向前移動n個元素 raccess...
隨機排序四種方法
var arr 1,3,4,6,8,9,7 function foo arr return clonearr 返回排序後的值 for var i 0 i 10 i 原理 因為sort排序方法是通過 函式的返回值來進行排序的,1是公升序,1是降序,而隨機數的取值範圍是0 1,所以我們將隨機數 0.5,...
STL中iterator迭代器
1 標頭檔案 所有容器有含有其各自的迭代器型別 iterator types 所以當你使用一般的容器迭代器時,並不需要含入專門的標頭檔案。不過有幾種特別的迭代器,例如逆向迭代器,被定義於中。2 迭代器型別 迭代器共分為五種,分別為 input iterator output iterator for...