zoukankan      html  css  js  c++  java
  • c++模板编程

    #include <cstdio>
    #include <algorithm>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <vector>
    #include <stack>
    #include <queue>
    #include <string>
    
    using namespace std;
    /**
    【1】模板编程,template <typename T>声明模板
    */
    template <typename T>
    T findmax(T arr[],int len)
    {
        T val=arr[0];
        for(int i=1;i<len;i++)
        {
            if(arr[i]>val)val=arr[i];
        }
        return val;
    }
    /**
    【2】类模板
    */
    template <int N,typename T>
    T* create()
    {
        T *str=new T[N];
        return str;
    }
    ///调用 char *p=create<100,char>();
    ///【3】stack模板例子
    template <typename T>
    class Stack
    {
    public:
        Stack(int maxsize)
        {
            m_maxsize=maxsize;
            m_buffer = new T[maxsize];
            m_size = 0;
        }
        ~Stack()
        {
            delete [] m_buffer;
        }
        bool push(const T& value)
        {
            if(m_size>=m_maxsize)return false;
            m_buffer[m_size]=value;
            m_size++;
            return true;
        }
        T pop()
        {
            T last=m_buffer[m_size-1];
            m_size--;
            return last;
        }
        const T& top()
        {
            return m_buffer[m_size-1];
        }
        int _size()
        {
            return m_size;
        }
    private:
        T * m_buffer;
        int m_size;
        int m_maxsize;
    };
    int main()
    {
        ///【1】
        puts("1:模板编程");
        int arr[]={1,2,9,6,4};
        double _arr[]={1.5,4.3,5.5,9.8,0.6};
        printf("%d %.2f
    ",findmax(arr,5),findmax(_arr,5));
        printf("%d 
    ",findmax<int>(arr,5));///<int>将模板实例化
        return 0;
    }
  • 相关阅读:
    接口
    多态
    封装
    初识继承
    对象的行为
    类、对象、包
    Java方法
    winform 报表的基本使用
    oracle配合C#的使用
    sql面试语句与后台调用js提示语句
  • 原文地址:https://www.cnblogs.com/Q1143316492/p/6444291.html
Copyright © 2011-2022 走看看