// testTemplate.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
using namespace std;
template <typename T>
T getAbs(T t)
{
if (t >= 0)
{
return t;
}
else
{
return -t;
}
}
template <typename T>
T getMax(T* t, int n)
{
T v;
for (int i = 0; i < n; i++)
{
if (i == 0)
{
v = t[i];
}
else
{
if (t[i] > v)
{
v = t[i];
}
}
}
return v;
}
template <typename T1, typename T2, typename T3, typename T4, typename T5>
void show(T1 t1,T2 t2,T3 t3,T4 t4,T5 t5)
{
std::cout << "\n";
std::cout << t1 << "\n";
std::cout << t2 << "\n";
std::cout << t3 << "\n";
std::cout << t4 << "\n";
std::cout << t5 << "\n";
}
template<typename T>
struct Data
{
string key;
T value;
};
int main()
{
std::cout <<getAbs<int>(-3)<<"\n";
std::cout << getAbs<int>(1) << "\n";
std::cout << getAbs<int>(-1.1) << "\n";
std::cout << getAbs<int>(0) << "\n";
std::cout << getAbs<int>(22.1) << "\n";
int a[] = {1,5,3,2,199,-3};
std::cout << getMax<int>(a, 6) << "\n";
show<int, double, string, int, int>(1,101,"aa",3,88);
Data<int> d1{ "aa",100 };
Data<string> d2{ "bb","ssss" };
cout << d1.key << "\n";
cout << d1.value << "\n";
cout << d2.key << "\n";
cout << d2.value << "\n";
}