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\n",findmax(arr,5),findmax(_arr,5));
    printf("%d \n",findmax<int>(arr,5));///<int>将模板实例化
    return 0;
}

 

全部评论

相关推荐

若怜君欢:驾驶证去掉吧,PPT啥的也去掉,本硕课程去掉,导师和研究方向去掉;加入本硕排名(好才写);技能栏加入你会的那些控制算法和滤波算法,这个比你会啥啥啥软件更有用;获奖写上去,奖学金啊,有没有专利啊之类的 电机和硬件这一块,属于传统制造业,制造业实习并不多。多投一些攒攒经验,有实习最好,没有也不需要焦虑(制造业实习其实除了转正,没多大用处) 最后,划重点,等秋招开始后,把你所有社交软件都发一份简历上去,并经常更新,找人内推你!
点赞 评论 收藏
分享
05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在提需求:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务