基本用法
正常我們想要輸出一個數組的全部元素時,需要採用以下的方法:
//隨機定義的數組
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
for (int i = 0; i < 10; i++) {
cout << array[i] << " "; //輸出:54 23 78 9 15 18 63 33 87 66
}
在C++11中,我們可以在for循環填加冒號 : 來簡化這一過程:
//隨機定義的數組
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
for (auto a : array) {
cout << a << " "; //輸出:54 23 78 9 15 18 63 33 87 66
}
需要注意的是:
如果傳入的迭代參數類型爲非引用時,做的是值拷貝,因此修改數據是無效的。
舉例說明:
#include<iostream>
using namespace std;
int main() {
//隨機定義的數組
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
for (auto a : array) {
cout << a << " "; //輸出:54 23 78 9 15 18 63 33 87 66
}
cout << endl;
for (auto a : array) {
a++; //改變後原數組中的數值不變
}
for (auto a : array) {
cout << a << " "; //輸出:54 23 78 9 15 18 63 33 87 66(數值不變)
}
system("pause");
return 0;
}
如果傳遞的是引用,則可以改變原數組的值。
舉例說明:
#include<iostream>
using namespace std;
int main() {
//隨機定義的數組
int array[10] = { 54, 23, 78, 9, 15, 18, 63, 33, 87, 66 };
for (auto a : array) {
cout << a << " "; //輸出:54 23 78 9 15 18 63 33 87 66
}
cout << endl;
for (auto &a : array) { //傳遞了引用,因此改變數組中的值會有效果
a++;
}
for (auto a : array) {
cout << a << " "; //輸出:55 24 79 10 16 19 64 34 88 67(數值+1)
}
system("pause");
return 0;
}