模版函数

原创 2016年05月30日 20:01:28
#include <iostream>

using namespace std;

template <typename T>
void MySwap(T& a,T& b)
{
    T t = a;
    a = b;
    b = t;
}

void run()
{
    cout << "int 交换(自动类型推导)" << endl;
    int a = 1;
    int b = 2;
    cout << "a = " << a << ",b = " << b << endl;
    MySwap(a,b);
    cout << "a = " << a << ",b = " << b << endl;

    cout << "float 交换(显式类型推导)" << endl;
    float fa = 3.5;
    float fb = 4.9;

    cout << "fa = " << fa << ",fb= " << fb << endl;
    MySwap<float>(fa,fb);
    cout << "fa = " << fa << ",fb= " << fb << endl;
}
template<typename T>
void SelectSort(T array[],int length)
{
    for(int i=0;i<length;i++)
    {
        int k = i;
        for(int j=i+1;j<length;j++)
        {
            if(array[k] < array[j])
            {
                k = j;
            }
        }
        if(k!=i)
        {
            MySwap(array[i],array[k]);  //自动类型推导
        }
    }
}
void test_1()
{
    int array[] = {5,2,3,1,4};
    int length = sizeof(array)/sizeof(array[0]);
    cout << "All elements: " << endl;
    for(int i=0;i<length;i++)
    {
        cout << array[i] << endl;
    }
    SelectSort<int>(array,length);  //显示类型推导
    cout << "After sorting..." << endl;
    for(int i=0;i<length;i++)
    {
        cout << array[i] << endl;
    }

}
void test_2()
{
    char array[] = {'d','a','c','b','m'};
    int length = sizeof(array)/sizeof(array[0]);
    cout << "All Elements : " << endl;
    for(int i=0;i<length;i++)
    {
        cout << array[i] << endl;
    }
    SelectSort<char>(array,length);  //显示类型推导
    cout << "After sorting..." << endl;
    for(int i=0;i<length;i++)
    {
        cout << array[i] << endl;
    }

}

int main()
{
//    run();
//    test_1();
    test_2();
    cout << "------end-----" << endl;
    return 0;
}

函数模板全特化与偏特化

template class Test { public: Test(T1 i,T2 j):a(i),b(j){cout private: T1 a; T2 b; }; template clas...
  • s983134950
  • s983134950
  • 2015年04月21日 11:00
  • 769

模版函数

#include using namespace std;template inline T max(T const& a, T const& b){ return a }template inlin...
  • cl_gamer
  • cl_gamer
  • 2009年12月10日 23:16
  • 676

C++ Template 基础篇(一):函数模板

C++ Template 基础篇(一):函数模板Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。C Te...
  • lezardfu
  • lezardfu
  • 2017年02月24日 19:40
  • 2380

动态链接库+函数模板

 想为快速排序建一个动态链接库好在以后写算法的时候直接调用。为了便于复用,使用了函数模板,头文件如下: #ifdef SORTDLL_EXPORTS #define SORT_API __de...
  • u013066145
  • u013066145
  • 2015年03月31日 21:47
  • 422

C++函数模板及实现原理

C++为我们提供了函数模板机制。所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。 凡是函数体相同的函数都可以用这个模板来代替...
  • baidu_28312631
  • baidu_28312631
  • 2015年08月25日 12:50
  • 6253

C++ 基础之 "模版函数","类模版"

看一些C++代码看到T符号就头痛,不知道怎么用。看了下书,记录在这里。 1.模版函数 如果要编写一个函数比较两个数并指出第一个数是小于,等于还是大于第二个数。我们可能会定义下面的函...
  • fox64194167
  • fox64194167
  • 2012年11月07日 17:35
  • 1251

ecshop的模板函数

1.foreach {foreach from=标签 item=输出别名} {$输出别名.属性} {/foreach} 当需要用到控制时: {foreach name=标签名...
  • xla9071352
  • xla9071352
  • 2017年06月19日 16:04
  • 319

函数模版与模版函数

1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型...
  • alpha_love
  • alpha_love
  • 2017年06月18日 18:39
  • 75

模版函数适配模版类型 初探

对同一个数据类型,做了不同的模版封装,在调用 数据处理的时候,通过指定特定模版 保存的类型,来指定 特定的函数来处理。 参考 std::enable_shared_from_this 代码实现。 #...
  • sstnba
  • sstnba
  • 2017年12月27日 17:17
  • 8

写得用于比较的函数对象模板

#include "bdc_share_ptr.hpp" template class ItemCompareById {     typedef boost::shared_ptr p_I...
  • supermanwg
  • supermanwg
  • 2012年08月17日 13:39
  • 1263
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模版函数
举报原因:
原因补充:

(最多只允许输入30个字)