程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 練習c++ 函數模版例子

練習c++ 函數模版例子

編輯:C++入門知識

[cpp]
//函數模版使用 
//函數模版標准不支持參數默認值 
#include<iostream> 
#include<cstring> 
using namespace std; 
template <typename T> 
void sort(T* a,int n)//普通冒泡排序 

    bool changed; 
    do 
    { 
        changed=false; 
        for(int i=1;i<n;i++) 
        { 
            if(a[i]<a[i-1]) 
            { 
                swap(a[i],a[i-1]); 
                changed=true; 
            } 
        } 
        --n; 
    } 
    while(changed); 

template <>//模版特化 
void sort(const char* a[],int n)//普通冒泡排序 

    bool changed; 
    do 
    { 
        changed=false; 
        for(int i=1;i<n;i++) 
        { 
            if(strcmp(a[i],a[i-1])<0) 
            { 
                swap(a[i],a[i-1]); 
                changed=true; 
            } 
        } 
        --n; 
    } 
    while(changed); 

//template <typename T> 
//void show(T t[],int n) 
template <typename T,int n> 
void show(T(&t)[n]) 

    //int n=sizeof(t)/sizeof(t[0]);//算出t的個數 
    for(int i=0;i<n;i++) 
        cout<<t[i]<<' '; 
    cout<<endl; 

template <typename T> 
void show(T t) 

        cout<<t<<endl; 

int main() 

    int a[5]={6,7,8,3,2}; 
     
    sort(a,5);//函數模版會自動匹配,不需要顯式指定類型 
    show(a); 
    double d=12.345; 
    show(d); 
    char c[5]={'b','f','k','d','a'}; 
    sort(c,5); 
    show(c); 
    const char* ca[3]={"fc","ca","ab"}; 
    sort(ca,3); 
    show(ca); 
    return 0; 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved