主要的目的
- 為了讓指針更加簡單、安全,引入了begin和end函數,這兩個函數和容器中兩個同名的成員函數類似。但是由于數組畢竟不是類類型,因此這兩個函數不是成員函數。
- 正確的使用形式就是將數組作為他們的參數
int ia[] = {0,1,2,3,4,5,6,7,8,9};int *beg = begin(ia);int *last = end(ia);
- begin函數返回指向數組的首元素的指針,end函數返回指向數組尾元素的下一個位置的指針,這兩個函數都被定義在iterator的頭文件中。使用begin和end函數就可以很好地處理數組中的元素
- 例子:從數組中找到第一個負數
int main(){int ia[] = {0,1,2,3,-4,5,6,7,8,9,-6};int *beg = begin(ia);int *last = end(ia);//尋找第一個負值的元素,如果已經檢查完畢全部元素就結束循環while (beg != last){if(*beg >= 0){*beg++;}else{cout << *beg;break;}}return 0;
}
- 一個指針如果指向了某種內置類型數組的尾元素的“下一個位置”,則其具備與vector的end函數返回的與迭代器類似的功能。特別要主要的是,尾后指針不能執行解引用和遞增操作。