</pre><pre name="code" class="cpp">
#include <iostream>
#include <string>
void printstring(const std::string & str)
{
std::cout << str << std::endl;
}
template<class T> void print(const T & var)
{
std::cout << var << std::endl;
}
int main()
{
std::string str("hello world!");
printstring(str);
std::string str2("uestc");
print(str2);
int number = 2048;
print(number);
system("pause");
exit(0);
}
#include <iostream>
int min_int(int a, int b, int c)
{
int min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
float min_float(float a, float b, float c)
{
float min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
char min_char(char a, char b, char c)
{
char min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
template<class T> T min(T t1, T t2, T t3)
{
T min;
min = t1;
if (min > t2)
min = t2;
if (min > t3)
min = t3;
return min;
}
int main()
{
int int_min = min_int(10, 20, 40);
std::cout << "int_min(10, 20, 40) = " << int_min << std::endl;
float float_min = min_float(10.2, 34.4, 3.9);
std::cout << "float_min(10.2, 34.4, 3.9) = " << float_min << std::endl;
char char_min = min_char('c', 'a', 'z');
std::cout << "char_min('c', 'a', 'z') = " << char_min << std::endl;
std::cout << "\n下面是用模板来输出最小值\n";
std::cout << "min(10, 20, 40) = " << min(10, 20, 40) << std::endl;
std::cout << "min(10.2, 34.4, 3.9) = " << min(10.2, 34.4, 3.9) << std::endl;
std::cout << "min('c', 'a', 'z') = " << min('c', 'a', 'z') << std::endl;
system("pause");
exit(0);
}
#include <iostream>
int min_int(int a, int b, int c)
{
int min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
float min_float(float a, float b, float c)
{
float min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
char min_char(char a, char b, char c)
{
char min;
min = a;
if (min > b)
min = b;
if (min > c)
min = c;
return min;
}
template<class T> T min(T t1, T t2, T t3)
{
T min;
min = t1;
if (min > t2)
min = t2;
if (min > t3)
min = t3;
return min;
}
const char * min(char * str1, char * str2, char * str3)
{
char * min;
min = str1;
if (strcmp(min, str2) > 0)
min = str2;
if (strcmp(min, str3) > 0)
min = str3;
return min;
}
int main()
{
int int_min = min_int(10, 20, 40);
std::cout << "int_min(10, 20, 40) = " << int_min << std::endl;
float float_min = min_float(10.2, 34.4, 3.9);
std::cout << "float_min(10.2, 34.4, 3.9) = " << float_min << std::endl;
char char_min = min_char('c', 'a', 'z');
std::cout << "char_min('c', 'a', 'z') = " << char_min << std::endl;
std::cout << "\n下面是用模板来输出最小值\n";
std::cout << "min(10, 20, 40) = " << min(10, 20, 40) << std::endl;
std::cout << "min(10.2, 34.4, 3.9) = " << min(10.2, 34.4, 3.9) << std::endl;
std::cout << "min('c', 'a', 'z') = " << min('c', 'a', 'z') << std::endl;
std::cout << "\n比较字符串的大小,编译器会调用特殊定义的函数min(char *, char *, char *)\n";
std::cout << " min(\"yao\", \"xiao\", \"kui\") = " << min("yao", "xiao", "kui") << std::endl;
system("pause");
exit(0);
}
#include <iostream>
#include <string>
#include <sstream>
#include <complex>
template<class T>
T fromString(const std::string & s)
{
std::istringstream is(s);
T t;
is >> t;
return t;
}
template<class T>
std::string toString(const T & t)
{
std::ostringstream s;
s << t;
return s.str();
}
int main()
{
using namespace std;
cout << "将其它类型的变量转换为string类型输出\n";
int i = 1024;
cout << "i = " << toString(i) << endl;
float x = 29.3;
cout << "x = " << toString(x) << endl;
complex<float> c(1.0, 2.0);
cout << "c = " << toString(c) << endl;
cout << "\n将string类型的变量转换为其它的类型输出\n";
i = fromString<int>(string("1024"));
cout << "i = " << i << endl;
x = fromString<float>(string("20.33"));
cout << "x = " << x << endl;
c = fromString<complex<float>>(string("(2.3, 3.5)"));
cout << "c = " << c << endl << endl;
system("pause");
exit(0);
}