一連の数値を出力する関数があるとします。1, 2, 3, 4, 5
これらの数値は、配列またはベクトルとして格納できます。したがって、現在のシステムでは、これらのパラメーターのいずれかを受け入れる 2 つの関数があります。
void printNumbers(std::vector<double> &printNumbers)
{
//code
//....
}
したがって、配列を受け入れるもの..
void printNumbers(int* numbers)
{
//code
//...
}
これはコードの無駄のように思えます。コードの再利用をうまく利用できるのではないかと考えていたので、次のように考えました。テンプレートを使用して、関数に渡される入力のタイプを判別できますか? たとえば、それが であるvector
か、array
または単一の整数値であるか?
これが以下のプロトタイプです。
#include <iostream>
using namespace std;
template<class T>
void printNumbers(T numbers)
{
// code
// code
}
int main(int argc, char *argv[]) {
int numbers[] = {1, 2, 3, 4, 5};
printNumbers<array> (numbers);
}
どんな助けでも大歓迎です。