最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++函數(shù)模板的使用詳解

 更新時間:2022年01月05日 14:11:11   作者:Derrick Bai  
大家好,本篇文章主要講的是C++函數(shù)模板的使用詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

函數(shù)模板可以適用泛型來定義函數(shù),其中泛型可以是(int, double, float)等替換。在函數(shù)重載過程中,通過將類型作為參數(shù)傳遞給模板,可使編譯器自動產(chǎn)生該類型的函數(shù)。

工作原理:比如需要定義一個比大小的max函數(shù),有三種類型的數(shù)據(jù)(int,double,float),可能就需要編寫三個函數(shù),這樣既浪費時間,且容易出錯。如:

#include <iostream>
 
using namespace std;
 
int Max(int a, int b);
double Max(double x, double y);
float Max(float s, float t);
 
int main()
{
    cout << Max(1, 2) << endl;
 
    cout << Max(3.0, 4.0) << endl;
 
    cout << Max(5.23, 5.24) << endl;
 
    return 0;
}
 
int Max(int a, int b)
{
    return a > b ? a : b;
}
 
double Max(double x, double y)
{
    return x > y ? x : y;
}
 
float Max(float s, float t)
{
    return s > t ? s : t;
}

 結(jié)果如下:

 從上面就可以看出一個很簡單的比較大小的函數(shù),居然寫的這么繁瑣,顯然增加了工作量,極大降低了工作效率,因此,函數(shù)模板的出現(xiàn)十分有效的解決了這個問題。函數(shù)模板允許以任意類型的方式定義函數(shù),有兩種形式例如:

形式1:

template <typename Anytype> //template是函數(shù)模板的關(guān)鍵字
void Swap(Anytype &a,Anytype &b)
{
    Anytype temp;
    temp=a;
    a=b;
    b=temp;
}

形式2:

template <class Anytype> //class是函數(shù)模板的關(guān)鍵字
void Swap(Anytype &a,Anytype &b)
{
    Anytype temp;
    temp=a;
    a=b;
    b=temp;
}
 使用函數(shù)模板之后的代碼如下:

形式1 :

#include <iostream>
 
using namespace std;
 
template <typename T>
T Max(T a, T b);
/* double Max(double x, double y);
float Max(float s, float t); */
 
int main()
{
    cout << Max(1, 2) << endl;
 
    cout << Max(3.0, 4.0) << endl;
 
    cout << Max(5.23, 5.24) << endl;
 
    return 0;
}
 
template <typename T>
T Max(T a, T b)
{
    return a > b ? a : b;
}

 形式2:

#include <iostream>
 
using namespace std;
 
template <class T>
T Max(T a, T b);
 
int main()
{
    cout << Max(1, 2) << endl;
 
    cout << Max(3.0, 4.0) << endl;
 
    cout << Max(5.23, 5.24) << endl;
 
    return 0;
}
 
template <class T>
T Max(T a, T b)
{
    return a > b ? a : b;
}

結(jié)果如下:

對比之下,明顯精簡了很多。

到此這篇關(guān)于C++函數(shù)模板的使用詳解的文章就介紹到這了,更多相關(guān)C++函數(shù)模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

兖州市| 富民县| 丹东市| 富宁县| 洪洞县| 尚志市| 五台县| 离岛区| 波密县| 商丘市| 东至县| 威宁| 玉溪市| 桂平市| 滨海县| 房产| 始兴县| 镇江市| 蒲城县| 黄山市| 林西县| 蒙山县| 葵青区| 石狮市| 安多县| 靖宇县| 三亚市| 呼和浩特市| 于都县| 措勤县| 习水县| 准格尔旗| 宜兴市| 惠来县| 峨眉山市| 诏安县| 安乡县| 盐源县| 合阳县| 谢通门县| 沧州市|