編寫一個模版函數count
阿新 • • 發佈:2017-08-30
編寫 影響 -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,constT *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