配列の要素数・最終要素を返す関数

C++のテンプレートに関する本を斜め読みしているので、面白そうな奴だけでもまとめておこうと。

  • 配列の要素数を返す関数
  • 配列の最終要素を返す関数

を作成する。template引数に整数値を使用できるというところがポイント。

#include<iostream>
using namespace std;
//要素数を返す関数
template <class T, int N>
int Size(T (&x)[N]){
    return N;
}
//最終要素を取得する関数
template <class T, int N>
T LastElement(T (&x)[N]){
    return x[N - 1];
}
//メイン関数
int main()
{
    int x[] = {1, 4, 3, 9, 7};
    cout << Size(x) << endl;
    cout << LastElement(x) << endl;
    return 0;
}

実行結果は

5
7

となり、それぞれ配列の要素数と最終要素を表示している。