C++テンプレート関数で内蔵配列をマッチング

935 ワード

関数テンプレートで組み込み配列を一致させる
これは私が『プログラミング原理と実践(第2版)(進級編)』でMatrixライブラリに関する内容を勉強したときに見た知識点です.
#include
using namespace std;
template
void test(const T(&a)[n]) {     //      :     。  C++     ,C   
								// (&a)           。
	for (int i = 0; i < n; i++)
		cout << a[i] << '\t';
	cout << endl;
}

int main() {
	int a[]{ 1,2,3,4,5 }; 		//                   
	test(a);

	return 0;
}

配列知識補充:配列には2つの特性があり、主に配列をパラメータとして伝達する必要がある場合に体現される:1つは配列を複製できない;二つ目は、配列名を使用する場合、配列名は配列の最初の要素を指すポインタに相当します(実際にはそうです).コピーできないため、配列タイプを使用するパラメータを記述できず、配列は自動的にポインタに変換されます.
#include
using namespace std;
void test(int a[5]) {		//               
	*a = 11;
	cout << a[0] << endl;	//  11
}

int main() {
	int a[]{ 1,2,3,4,5 };
	test(a);
	cout << a[0] << endl;	//  11

	return 0;
}