標准庫函數begin和end------c++primer


  盡管能計算得到尾后指針,但這種用法極易出錯。為了讓指針的使用更簡單、更安全,c++新標准引入了兩個名為begin和end的函數。這兩個函數與容器中的兩個同名成員功能類似,不過數組畢竟不是類類型,因此這兩個函數不是成員函數。正確的使用形式是將數組作為它們的參數:

	int a[] = { 0,1,2,3,4,5,6,7,8,9 };
	int *beg = begin(a);//指向a首元素的指針
	int *last = end(a);//指向a尾元素的下一位置的指針

  不能用動態數組

這兩個函數定義在iterator頭文件中。

  使用這兩個函數可以很容易寫出一個循環並處理數組中的元素。例如:

int *pbeg=begin(a),*pend=end(a);
while(pbeg!=pend&&*pbeg>=0)
    ++pbeg;

  特別要注意,尾后指針不能執行解引用和遞增操作。

  通過函數傳參的數組無法調用這兩個函數,因為數組形參實際傳遞的是數組指針。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM