テンプレート関数
はじめに
ライブラリについて勉強する中でときどきtemplate
これがどんな機能をもっていてどんなときに使うのかを学びました。
テンプレート関数
テンプレート関数は,引数の型名が変わってもいちいち型名を変更せずにそのままつかえる関数のようっです。テンプレート関数はtemplate及びtypenameという予約語を使って書きます。
template<typename T> 戻り値の型 関数名(引数リスト){}
例
2つのデータの比較をするcompare関数をテンプレート関数を使って書きます。
#include <bits/stdc++.h> using namespace std; template<typename T> void compare(T a,T b){ if(a>b){ cout<<a<<" "<<">"<<" "<<b<<endl; } else if(a<b){ cout<<a<<" "<<"<"<<" "<<b<<endl; } else{ cout<<a<<" "<<"="<<" "<<b<<endl; } } int main(){ compare(5,6); compare('a','b'); compare(2.1,2.5); compare('E','E'); compare("cat","dog"); return 0; }
出力
5 < 6 a < b 2.1 < 2.5 E = E cat < dog