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

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

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

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

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

#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é)果如下:

 從上面就可以看出一個(gè)很簡單的比較大小的函數(shù),居然寫的這么繁瑣,顯然增加了工作量,極大降低了工作效率,因此,函數(shù)模板的出現(xiàn)十分有效的解決了這個(gè)問題。函數(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)文章

  • Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟

    Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟

    本文主要介紹了Vs2022環(huán)境下安裝低版本.net framework的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 詳解C/C++內(nèi)存區(qū)域劃分(簡而易懂)

    詳解C/C++內(nèi)存區(qū)域劃分(簡而易懂)

    C/C++中,內(nèi)存主要分為、堆、棧、全局/靜態(tài)存儲(chǔ)區(qū)和常量存儲(chǔ)區(qū)。本文重點(diǎn)給大家介紹C/C++內(nèi)存區(qū)域劃分的相關(guān)知識,需要的朋友參考下吧
    2021-06-06
  • C語言冒泡排序法的實(shí)現(xiàn)(升序排序法)

    C語言冒泡排序法的實(shí)現(xiàn)(升序排序法)

    這篇文章主要介紹了C語言冒泡排序法的實(shí)現(xiàn)(升序排序法),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • C++異常處理 try,catch,throw,finally的用法

    C++異常處理 try,catch,throw,finally的用法

    這篇文章主要介紹了C++異常處理 try,catch,throw,finally的用法,需要的朋友可以參考下
    2018-01-01
  • C++四種case的詳細(xì)介紹小結(jié)

    C++四種case的詳細(xì)介紹小結(jié)

    本文主要介紹了C++四種case的詳細(xì)介紹小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C++如何將一個(gè)vector內(nèi)容賦值給另一個(gè)vector,及swap與assign區(qū)別

    C++如何將一個(gè)vector內(nèi)容賦值給另一個(gè)vector,及swap與assign區(qū)別

    在本文中,我們將主要介紹5種將一個(gè)vector內(nèi)容賦值給另一個(gè)vector的方式,順便討論下swap與assign的區(qū)別,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++ 類的友元機(jī)制解讀

    C++ 類的友元機(jī)制解讀

    這篇文章主要介紹了C++ 類的友元機(jī)制的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-02-02
  • OpenCV實(shí)現(xiàn)圖像切割功能

    OpenCV實(shí)現(xiàn)圖像切割功能

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)圖像切割功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼

    Matlab實(shí)現(xiàn)統(tǒng)計(jì)集合中各元素出現(xiàn)次數(shù)的示例代碼

    統(tǒng)計(jì)數(shù)組中各個(gè)元素?cái)?shù)量是一個(gè)很常用的功能,本文主要為大家介紹了如何利用Matlab優(yōu)雅的統(tǒng)計(jì)集合中各元素出現(xiàn)的次數(shù),感興趣的可以了解一下
    2022-05-05
  • C語言簡明介紹指針的使用

    C語言簡明介紹指針的使用

    C語言這門課程在計(jì)算機(jī)的基礎(chǔ)教學(xué)中一直占有比較重要的地位,然而要想突破C語言的學(xué)習(xí),對指針的掌握是非常重要的,本文將具體針對指針的基礎(chǔ)做詳盡的介紹
    2022-06-06

最新評論

焦作市| 海宁市| 韩城市| 娱乐| 彭泽县| 平南县| 曲阳县| 黑山县| 商都县| 翼城县| 广饶县| 闽清县| 穆棱市| 虹口区| 岳西县| 南涧| 锡林郭勒盟| 板桥市| 琼结县| 定陶县| 宁明县| 泰兴市| 巴林左旗| 葵青区| 加查县| 乐平市| 土默特右旗| 通州市| 德格县| 新余市| 洛浦县| 三台县| 瑞金市| 安顺市| 沛县| 聂荣县| 高邑县| 隆回县| 佛教| 宁波市| 确山县|