大家好,又见面了,我是你们的朋友全栈君。
例题:
把课程当中的函数模板与类模板两个程序自己写一遍并写好注释。
代码如下:
#include "pch.h"
#include<vector>
#include<string>
#include <iostream>
using namespace std;
//模板类
template<class T> class Stack
{
public:
void pop(); //出栈
void push(T const&); //入栈
T top(); //返回栈顶
bool empty() //如果空 返回真
{
return elems.empty();
}
private:
vector<T> elems;
};
//入栈
template<class T>
void Stack<T>::push(T const &elem)
{
//元素入栈
elems.push_back(elem);
}
//出栈
template<class T>
void Stack<T>::pop()
{
if (elems.empty())
{
cout << "栈为空,不能出栈" << endl;
}
elems.pop_back(); //删除最高后一个元素
}
//返回栈顶
template <class T>
T Stack<T>::top()
{
if (elems.empty())
{
cout << "栈为空,不能返回栈顶" << endl;
}
return elems.back();
}
template <typename TT>TT Max(TT a, TT b)
{
return a > b ? a : b;
}
int main()
{
cout << "模板类部分:" << endl;
Stack<int> intstack;
intstack.push(1);
intstack.push(5);
intstack.push(6);
cout << "int的结果为:" << intstack.top() << endl;
intstack.pop();
cout << "int的出栈结果为:" << intstack.top() << endl;
Stack<string> stringstack;
stringstack.push("李素");
stringstack.push("赵刚");
stringstack.push("王伟");
cout << "string的结果为:" << stringstack.top() << endl;
stringstack.pop();
cout << "string出栈的结果为:" << stringstack.top() << endl;
cout << endl;
cout << "模板函数部分:" << endl;
cout << "最大值为:" << Max(1, 222) << endl;
cout << "最大值为:" << Max(8888, 222) << endl;
cout << "最大值为:" << Max("王刚单","老李") << endl;
return 0;
}
复制
结果如下:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170995.html原文链接:https://javaforall.cn