63,594
社区成员




//习题2.6
#include<iostream>
#include<string>
#include<vector>
using namespace std;
template<typename T>
T max(T a,T b)
{
return a>b?a:b;
}
template<typename V>
V max(vector<V> ivec)
{
V maxint=ivec[0];
for(int ix=0;ix<ivec.size();++ix)
if(ivec[ix]>maxint)
maxint=ivec[ix];
return maxint;
}
template<typename A>
A max(A a[],size_t i)
{
A maxint=a[0];
for(int ix=0;ix<i;++ix)
if(a[ix]>maxint)
maxint=a[ix];
return maxint;
}
int main()
{
int i_a=8,i_b=9;
double d_a=7.7,d_b=8.8;
string s_a="you";
string s_b="xiao";
int ia[]={2,5,7,4,9};
double da[]={2.5,5.6,1.9,6.4,6.8};
string sa[]={"you","xiao","lu","yi","jun"};
size_t size=5;
vector<int> ivec(ia,ia+5);
vector<double> dvec(da,da+5);
vector<string> svec(sa,sa+5);
int a=max(i_a,i_b);
double b=max(d_a,d_b);
string c=max(s_a,s_b);
int d=max(ivec);
double e=max(dvec);
string f=max(svec);
int g=max(ia,size);
double h=max(da,size);
string i=max(sa,size);
}
string c=std::max(s_a,s_b);
//习题2.6
#include<iostream>
#include<string>
#include<vector>
using namespace std;
namespace MYMAX
{
template<typename T>
T max(T a,T b)
{
return a>b?a:b;
}
template<typename V>
V max(vector<V> ivec)
{
V maxint=ivec[0];
for(int ix=0;ix<ivec.size();++ix)
if(ivec[ix]>maxint)
maxint=ivec[ix];
return maxint;
}
template<typename A>
A max(A a[],size_t i)
{
A maxint=a[0];
for(int ix=0;ix<i;++ix)
if(a[ix]>maxint)
maxint=a[ix];
return maxint;
}
}
int main()
{
using MYMAX::max;
int i_a=8,i_b=9;
double d_a=7.7,d_b=8.8;
string s_a="you";
string s_b="xiao";
int ia[]={2,5,7,4,9};
double da[]={2.5,5.6,1.9,6.4,6.8};
string sa[]={"you","xiao","lu","yi","jun"};
size_t size=5;
vector<int> ivec(ia,ia+5);
vector<double> dvec(da,da+5);
vector<string> svec(sa,sa+5);
int a=max(i_a,i_b);
double b=max(d_a,d_b);
string c=max(s_a,s_b);
int d=max(ivec);
double e=max(dvec);
string f=max(svec);
int g=max(ia,size);
double h=max(da,size);
string i=max(sa,size);
cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<h<<" "<<i<<" ";
}
#include<iostream>
#include<string>
#include<vector>
//不要将namespace std里面太多东西都包含进来。
using std::size_t;
using std::vector;
using std::string;
template<typename T>
T max(T a,T b)
{
return a>b?a:b;
}
template<typename V>
V max(vector<V> ivec)
{
V maxint=ivec[0];
for(size_t ix=0;ix<ivec.size();++ix)
if(ivec[ix]>maxint)
maxint=ivec[ix];
return maxint;
}
template<typename A>
A max(A a[],size_t i)
{
A maxint=a[0];
for(size_t ix=0;ix<i;++ix)
if(a[ix]>maxint)
maxint=a[ix];
return maxint;
}
int main()
{
int i_a=8,i_b=9;
double d_a=7.7,d_b=8.8;
string s_a="you";
string s_b="xiao";
int ia[]={2,5,7,4,9};
double da[]={2.5,5.6,1.9,6.4,6.8};
string sa[]={"you","xiao","lu","yi","jun"};
size_t size=5;
vector<int> ivec(ia,ia+5);
vector<double> dvec(da,da+5);
vector<string> svec(sa,sa+5);
int a=max(i_a,i_b);
double b=max(d_a,d_b);
string c=::max(s_a,s_b); //这里指定用全局中定义的。
int d=max(ivec);
double e=max(dvec);
string f=max(svec);
int g=max(ia,size);
double h=max(da,size);
string i=max(sa,size);
return 0;
}
/*
除了上面的去掉方法外,
我用了一个笨方法解决了。
等待高手提出更好的方法!!!
下列平台运行通过:
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
*/
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5 namespace MYMAX//这里加上一个命名空间,强迫其调用你自己的这个模版
6 {
7 template<typename T>
8 T max(T a,T b)
9 {
10 return a>b?a:b;
11 }
12 template<typename V>
13 V max(vector<V> ivec)
14 {
15 V maxint=ivec[0];
16 for(int ix=0;ix<ivec.size();++ix)
17 if(ivec[ix]>maxint)
18 maxint=ivec[ix];
19 return maxint;
20
21 }
22 template<typename A>
23 A max(A a[],size_t i)
24 {
25
26 A maxint=a[0];
27 for(int ix=0;ix<i;++ix)
28 if(a[ix]>maxint)
29 maxint=a[ix];
30 return maxint;
31 }
32 }
33 int main()
34 {
35 using MYMAX::max;//在这里殖民调用你自己的那些模版
36 int i_a=8,i_b=9;
37 double d_a=7.7,d_b=8.8;
38 string s_a="you";
39 string s_b="xiao";
40 int ia[]={2,5,7,4,9};
41 double da[]={2.5,5.6,1.9,6.4,6.8};
42 string sa[]={"you","xiao","lu","yi","jun"};
43 size_t size=5;
44 vector<int> ivec(ia,ia+5);
45 vector<double> dvec(da,da+5);
46 vector<string> svec(sa,sa+5);
47
48 int a=max(i_a,i_b);
49 double b=max(d_a,d_b);
50 string c=max(s_a,s_b);
51 int d=max(ivec);
52 double e=max(dvec);
53 string f=max(svec);
54 int g=max(ia,size);
55 double h=max(da,size);
56 string i=max(sa,size);
57 cout<<c<<endl;
58 }
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 /*这个函数去掉就可以了,居然std里面有一个重载的函数。
7 template<typename T>
8 T max(T a,T b)
9 {
10 return a>b?a:b;
11 }
12 */
13 template<typename V>
14 V max(vector<V> ivec)
15 {
16 V maxint=ivec[0];
17 for(int ix=0;ix<ivec.size();++ix)
18 if(ivec[ix]>maxint)
19 maxint=ivec[ix];
20 return maxint;
21
22 }
23 template<typename A>
24 A max(A a[],size_t i)
25 {
26
27 A maxint=a[0];
28 for(int ix=0;ix<i;++ix)
29 if(a[ix]>maxint)
30 maxint=a[ix];
31 return maxint;
32 }
33....................