【C++基礎編程】#029 for循環中帶冒號(:)用法簡介

基本用法

正常我們想要輸出一個數組的全部元素時,需要採用以下的方法:

//隨機定義的數組
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章