程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++11 新特性(6) 基於范圍的for循環

C++11 新特性(6) 基於范圍的for循環

編輯:C++入門知識

C++11 新特性(6) 基於范圍的for循環


C++11中添加了一項基於范圍的for循環,這可以省卻我們很多的代碼量。

來自維基百科的解釋:http://zh.wikipedia.org/wiki/C++0x#.E5.80.99.E9.81.B8.E8.AE.8A.E6.9B.B4

Boost C++ 定義了許多"范圍 (range) "的概念。范圍表現有如受控制的列表 (list),持有容器中的兩點。有序容器是范圍概念的超集 (superset),有序容器中的兩個迭代器 (iterator) 也能定義一個范圍。這些概念以及操作的算法,將被並入 C++11 標准程序庫。不過 C++11 將會以語言層次的支持來提供范圍概念的效用。

for 述句將允許簡單的范圍迭代:

int my_array[5] = {1, 2, 3, 4, 5};
for (int &x : my_array)
{
  x *= 2;
}

上面 for 述句的第一部份定義被用來做范圍迭代的參數,就像被聲明在一般 for 循環的參數一樣,其作用域僅只於循環的范圍。而在":"之後的第二區塊,代表將被迭代的范圍。這樣一來,就有了能夠允許 C-style 數組被轉換成范圍概念的概念圖。這可以是 std::vector,或是其他符合范圍概念的對象。


基於范圍的for循環在普通的數組中的應用:

#include 
using namespace std;
int main()
{
	int arr[10]{1,2,3,4,5,6,7,8,9,10};
	for(int i:arr){
		cout<運行結果:

\

在STL 容器中遍歷時更加方便。<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CjxwcmUgY2xhc3M9"brush:java;">#include #include using namespace std; int main() { vector arr{1,2,3,4,5,6,7,8,9,10}; for(int &i:arr){ cout<結果:

有了這個,遍歷范圍內的元素的時候就會非常的方便了。





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved