zoukankan      html  css  js  c++  java
  • 泛型函数

    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    template <class T> T median(vector<T> v)
    {
        typedef typename vector<T>::size_type vec_sz;//注:关键字typename,说明vector<T>::size_type是一个类型。
    
         vec_sz size=v.size();
         if(size==0)
         {
             throw domain_error("空的集合!");
         }
         sort(v.begin(),v.end());
         vec_sz mid=size/2;
    
         return mid%2==0?(v[mid]+v[mid-1])/2:v[mid];
         
    }
    
    template <class T> T max_New(const T& left,const T& right)
    {
        return left>right?left:right;
    }
     
    
    int main()
    {
        int a[8]={1,2,3,90,5,6,7,9};
        vector<int> vi(a,a+8);
        cout<<median(vi);
    
        double b[4]={2.4,5,5.6,0.9};
        vector<double> vd(b,b+4);
        cout<<endl<<median(vd);
     
        double num=max_New(3.36,6.26);//两个参数的类型必须相同。
        cout<<endl<<num;
    
    
        /*string strs[]={"a","b","c"};
        vector<string> vs(strs,strs+sizeof(strs)/sizeof(string));
        cout<<endl<<median(vs);*/ //此处编译时报错,因为string不支持除法。
    }
  • 相关阅读:
    react常用的方法
    react手动搭建
    js基础
    原生JavaScript实例之简单放大镜
    ||与&&的返回值
    promise简单小结
    连接服务器一般步骤
    github小总结
    __proto__指向问题
    一些函数返回值
  • 原文地址:https://www.cnblogs.com/hometown/p/3375833.html
Copyright © 2011-2022 走看看