在for(int val:arr)中,冒号是什么意思?

时间:2017-11-13 23:18:05

标签: c++ arrays

#include <iostream>
using namespace std;
int arr[] = { 1, 2, 3 };

void Show()
{
    for (int val : arr) {
        cout << val;
    }
}

int main()
{
    Show();
    return 0;
}

结果将是123。  我将非常感谢能解释这个-int val:arr-  具体是什么 - : - 在这吗?它是什么。

1 个答案:

答案 0 :(得分:1)

它被称为range loop

int arr[] = { 1, 2, 3 };
for (int val : arr)
   cout << val;

的作用与:

相同
int arr[] = { 1, 2, 3 };
for (int i=0;i<sizeof(arr)/sizeof(int);i++)
{
   int val=arr[i];
   cout << val;
}

但是范围循环可以做得更多。

它只是意味着遍历所有成员。请记住,某些类可以具有复杂的迭代器,并且range for以干净的方式运行数组。另请注意,这是c++11功能。