zoukankan      html  css  js  c++  java
  • c++一些语法模板

    函数模板特

    template <class T>
    int compare(T v1,T v2)
    {
    if(v1<v2)
    	return -1;
    else if(v1>v2)
    	return 1;
    else
    	return 0;
    }
    
    template <>
    int compare<char *>(char * s1,char * s2)
    {
        return strcmp(s1,s2);
    }

    类模板的特化

    template <class T>
    class test
    {
    public:
    	void operator()()
    	{
    	cout<<"test<T>"<<endl;
    	}
    };
    
    template <>  class test<char>
    {
    public:
    	void operator()()
    	{
    	cout<<"test<char>"<<endl;
    	}
    };
    模板的偏特化

    template <class T,class O>  
    struct testClass
    {
    	testClass(){cout<<"I,O"<<endl;}
    };
    
    template <class T>
    struct testClass<T *,T *>
    {
    	testClass(){cout<<"T*,T*"<<endl;}
    };
    
    成员模板

    template <class T>
    class v
    {
    public:
    	template <class T1>
    	void insert(int position ,T1 t)
    	{
    	cout<<"insertion"<<endl;
    	}
    };
    

    依据前面一个模板确定当前的模板參数

    template <class T,class S=vector<T> >   
    class test
    {
    public:
    	test(){cout<<"test"<<endl;}
    private:
    	S t; 
    }
    

    模板与友元的绑定

    template <class T>   
    class Queue
    {
    	friend bool operator == <T> (const Queue <T> &t1,const Queue <T> &t2)
    	{
    		cout<<"T,T"<<endl;
    		return true;
    	}
    };

    内联函数模板

    inline template <typename T> T min(const T& a,const T & b)
    	{
    		return a<b?a:b;
    	}
    
    注意inline 和template的位置不能互换

    模板内部指定类型

    template <class T>
    class test
    {
    public:
    	typename T::size_type t;   //模板内部定义类型
    };
    

    非类型模板形參

    template <class T,size_t N>
    void arr(T (&para)[N])
    {
    	int i=0;
    	for(i=0;i<N;i++)
    		cout<<para[i]<<endl;
    };
    


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    noip宝藏
    [HNOI2008]玩具装箱TOY
    hdu 4372 Count the Buildings 轮换斯特林数
    bzoj 3000 Big Number 估算n!在k进制下的位数 斯特林公式
    自然数幂求和方法1:扰动法(求两次)
    斯特林数 学习笔记
    hdu 3625 Examining the Rooms 轮换斯特林数
    cf 472G Design Tutorial: Increase the Constraints 分块+压位/FFT
    chef and churu 分块 好题
    分块 学习笔记
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4622913.html
Copyright © 2011-2022 走看看