1. 程式人生 > >編寫一個模版函數count

編寫一個模版函數count

編寫 影響 -1 pac 當我 clas mes spa 定義

返回值是數組的a[0:n-1]的數組個數。

知識點:數組的兩個特殊性質對我們定義和使用作用在數組上的函數有影響,這兩個性質分別是:不允許拷貝數組以及使用數組時(通常)會將其轉換成指針。因為不能拷貝數組,所以我們無法以值傳遞的方式使用數組參數。因為數組會被轉換成指針,所以當我們為函數傳遞一個數組時,實際上傳遞的飾指向數組首元素的指針。

ex:

void print(const int*);

void print(const int[]);

void print(const int[10])

答案:

template <class T>
T count(const T *beg,const
T *end) { int n = 0; while (beg != end) { *beg++; n++; } return n; }

能運行代碼如下:

#include <iostream>

using namespace std;

int count(const int *beg, const int *end)
{
	int n = 0;
	while (beg != end)
	{
		*beg++;
		n++;
	}
	return n;
}

int main()
{
	int a[] = { 1,2,3,4 };
	cout << count(begin(a), end(a)) << endl;
	return 0;
}

  

編寫一個模版函數count