#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
template<typename T>
const int compare(const T& v1,const T& v2)
{
if (v1 < v2) return -1;
if (v1 > v2) return 1;
return 0;
}
template<class T>
T absVal(T val)
{
return val > 0 ? val : -val;
}
template<typename T1,typename T2>
T1& print(T1& s, T2 val)
{
s << val; //输出val到s中
return s;
}
int main()
{
double dval = -0.88;
float fval = -12.3;
string oristr = "this is a test";
string desstr;
ostringstream oss(desstr);
ofstream outFile("result.dat");
print(cout, -3) << endl;
print(cout, dval) << endl;
print(cout, fval) << endl;
print(cout, oristr) << endl;
print(outFile, -3) << endl;
print(outFile, dval) << endl;
print(outFile, fval) << endl;
print(outFile, oristr) << endl;
outFile.close();
print(oss, -3) << endl;
print(oss, dval) << endl;
print(oss, fval) << endl;
print(oss, oristr) << endl;
cout << oss.str() << endl;
double d1 = 1.23;
double d2 = 9.56;
cout << compare(d1, d2) << endl;
string s1("hi");
string s2("world");
cout << compare(s1, s2) << endl;
cout << absVal(dval) << endl;
cout << absVal(fval) << endl;
return 0;
}
C++-函数模板
于 2022-04-09 12:39:21 首次发布
该程序演示了C++中的模板函数用于比较、绝对值计算和流操作。它使用`compare`函数进行数值比较,`absVal`计算绝对值,并通过`print`将不同类型的值输出到控制台和文件中。程序还涉及到了`ostringstream`和`ofstream`的使用。
摘要由CSDN通过智能技术生成