feat: 统一 cpp 文件编码格式为 utf-8
This commit is contained in:
@@ -5,7 +5,7 @@ using namespace std;
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
string name[]={"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD>","<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"};
|
||||
string name[]={"张三","李四","王麻子"};
|
||||
double salary[]={1200,2000,1450};
|
||||
map<string,double>sal;
|
||||
map<string,double>::iterator p;
|
||||
@@ -18,7 +18,7 @@ int main(int argc, char const *argv[])
|
||||
cout<<p->first<<"\t"<<p->second<<endl;
|
||||
}
|
||||
string person;
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:";
|
||||
cout<<"输入查找人员的姓名:";
|
||||
cin>>person;
|
||||
int flag=1;
|
||||
for(p=sal.begin();p!=sal.end();p++)
|
||||
@@ -27,18 +27,18 @@ int main(int argc, char const *argv[])
|
||||
flag=0;
|
||||
}
|
||||
if(flag)
|
||||
cout<<"û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<<endl;
|
||||
cout<<"没查找到对应的结果!"<<endl;
|
||||
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:";
|
||||
cout<<"输入待删除的人员的姓名:";
|
||||
cin>>person;
|
||||
map<string,double>::iterator it;
|
||||
it = sal.find(person);
|
||||
if(it!=sal.end()){
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD>ҳɹ<EFBFBD><EFBFBD><EFBFBD>"<<(*it).first<<":"<<(*it).second<<endl;
|
||||
cout<<"查找成功:"<<(*it).first<<":"<<(*it).second<<endl;
|
||||
sal.erase(it);
|
||||
cout<<"ɾ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"<<endl;
|
||||
cout<<"删除成功"<<endl;
|
||||
}
|
||||
cout<<"ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>Ϊ"<<endl;
|
||||
cout<<"删除后的结果为"<<endl;
|
||||
for(p=sal.begin();p!=sal.end();p++){
|
||||
cout<<p->first<<p->second<<endl;
|
||||
}
|
||||
|
@@ -6,21 +6,21 @@ template <class T>
|
||||
T Max(T a,T b) {
|
||||
return (a>b)?a:b;
|
||||
}
|
||||
//<EFBFBD>ػ<EFBFBD>
|
||||
//template <> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><<3C>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) {}
|
||||
//特化
|
||||
//template <> 返回类型 函数名<特化的数据类型>(参数表) {}
|
||||
template<>char * Max<char *>(char *a,char *b) {
|
||||
return (strcmp(a,b)>=0)?a:b;
|
||||
}
|
||||
int main(){
|
||||
float c=5.1,d=3.2;
|
||||
cout<<"2,3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<Max(3,2)<<endl;
|
||||
cout<<"c,d<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<Max(c,d)<<endl;
|
||||
cout<<"2,3的最大值是:"<<Max(3,2)<<endl;
|
||||
cout<<"c,d的最大值是:"<<Max(c,d)<<endl;
|
||||
cout<<Max("xbv","xyce")<<endl;
|
||||
system("pause");
|
||||
}
|
||||
/*
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5>ã<EFBFBD>
|
||||
<EFBFBD><EFBFBD> <20><>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB>⣬<EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>C++<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>ʵ<EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
① 当程序中同时存在模板和它的特化时,特化将被优先调用;
|
||||
② 在同一个程序中,除了函数模板和它的特化外,还可以有同名的普通函数。其区别在于C++会对普通函数的调用实参进行隐式的类型转换,
|
||||
但不会对模板函数及特化函数的参数进行任何形式的类型转换。
|
||||
|
||||
*/
|
@@ -6,16 +6,16 @@ T Max(T a,T b) {
|
||||
return (a>b)?a:b;
|
||||
}
|
||||
/*
|
||||
C++<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD>ֻ<EFBFBD>Ǽؽ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>κ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
C++在实例化函数模板的过程中,只是简单地将模板参数替换成调用实参的类型,并以此生成模板函数,不会进行参数类型的任何转换。
|
||||
*/
|
||||
int main(){
|
||||
double a=2,b=3.4;
|
||||
float c=5.1,d=3.2;
|
||||
//<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ǿ<EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
|
||||
cout<<"2, 3.2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<Max(double(2),3.2)<<endl;
|
||||
cout<<"a, c <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<Max(float(a),c)<<endl;
|
||||
//<EFBFBD><EFBFBD>ʾָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cout<<"'a', 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<Max<int>('a',3)<<endl;
|
||||
//在模板调用时进行参数类型的强制转换
|
||||
cout<<"2, 3.2 的最大值是:"<<Max(double(2),3.2)<<endl;
|
||||
cout<<"a, c 的最大值是:"<<Max(float(a),c)<<endl;
|
||||
//显示指定函数模板实例化的参数类型
|
||||
cout<<"'a', 3 的最大值是:"<<Max<int>('a',3)<<endl;
|
||||
system("pause");
|
||||
}
|
||||
|
||||
|
@@ -1,18 +1,18 @@
|
||||
//Eg9-1.cpp
|
||||
#include <iostream>
|
||||
//ע<EFBFBD><EFBFBD>һ<EFBFBD>㣬max<EFBFBD><EFBFBD>minʹ<EFBFBD>õ<EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>д<EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD>Ҫ<EFBFBD>ı亯<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>std::cout<EFBFBD><EFBFBD>std::endl
|
||||
//注意一点,max与min使用的时候,容易引起冲突,如果写了下面这一行代码,则要改变函数模板名字,否则直接使用std::cout与std::endl
|
||||
using namespace std;
|
||||
/*
|
||||
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>class<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>class<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD>ͬ<EFBFBD>ġ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>class<EFBFBD><EFBFBD>ʾT<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD>int<EFBFBD><EFBFBD>float<EFBFBD><EFBFBD>char<EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>struct<EFBFBD><EFBFBD>enum<EFBFBD><EFBFBD>class<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>
|
||||
不要把这里的class与类的声明关键字class混淆在一起,虽然它们由相同的字母组成,但含义是不同的。
|
||||
这里的class表示T是一个类型参数,可以是任何数据类型,如int、float、char等,或者用户定义的struct、enum或class等自定义数据类型。
|
||||
*/
|
||||
template <class T>
|
||||
T Min(T a,T b) {
|
||||
return (a<b)?a:b;
|
||||
}
|
||||
/*
|
||||
Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>class<EFBFBD><EFBFBD><EFBFBD><EFBFBD>C++<2B><><EFBFBD><EFBFBD>?<3F><><EFBFBD><EFBFBD>typename<6D><65>Ϊģ<CEAA><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<CDB9><D8BC>֣<EFBFBD>ͬʱҲ֧<D2B2><D6A7>ʹ<EFBFBD><CAB9>class<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>磬<EFBFBD><EFBFBD>min<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>template <class T>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ȼ۵ģ<EFBFBD>
|
||||
为了区别类与模板参数中的类型关键字class,标准C++提出?了用typename作为模板参数的类型关键字,同时也支持使用class。
|
||||
比如,把min定义的template <class T>写成下面的形式是完全等价的:
|
||||
*/
|
||||
template <typename T>
|
||||
T myMin(T a, T b){
|
||||
@@ -20,22 +20,22 @@ T myMin(T a, T b){
|
||||
}
|
||||
|
||||
/*
|
||||
ģ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жԺ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>εľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>ȷ<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬<EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>ֻ<EFBFBD>ڵ<EFBFBD>1<EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ڵ<EFBFBD>1<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>͵IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>1<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>ģ<EFBFBD>庯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
模板实例化发生在调用模板函数时。当编译器遇到程序中对函数模板的调用时,
|
||||
它才会根据调用语句中实参的具体类型,确定模板参数的数据类型,
|
||||
并用此类型替换函数模板中的模板参数,生成能够处理该类型的函数代码,即模板函数。
|
||||
当多次发生类型相同的参数调用时,只在第1次进行实例化。编译器只在第1次调用时生成模板函数,
|
||||
当之后遇到相同类型的参数调用时,不再生成其他模板函数,它将调用第1次实例化生成的模板函数。
|
||||
*/
|
||||
int main(){
|
||||
double a=2,b=3.4;
|
||||
float c=2.3,d=3.2;
|
||||
cout<<"2<EFBFBD><EFBFBD>3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<Min<int>(2,3)<<endl; //<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cout<<"2<EFBFBD><EFBFBD>3.4 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<Min(a,b)<<endl;//<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cout<<"'a'<EFBFBD><EFBFBD>'b' <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<Min('a','b')<<endl;
|
||||
cout<<"2.3<EFBFBD><EFBFBD>3.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<Min(c,d)<<endl;
|
||||
cout<<"2.3<EFBFBD><EFBFBD>3.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ǣ<EFBFBD>"<<std::min(c,d)<<endl;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
cout<<"2.3<EFBFBD><EFBFBD>3.2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<myMin(c,d)<<endl;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>classΪtypename
|
||||
// cout<<"2<EFBFBD><EFBFBD>'a' <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD>ǣ<EFBFBD>"<<Min(2,'a')<<endl; //<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뿴9-3-1.cpp
|
||||
cout<<"2,3 的最小值是:"<<Min<int>(2,3)<<endl; //显式调用
|
||||
cout<<"2,3.4 的最小值是:"<<Min(a,b)<<endl;//隐式调用
|
||||
cout<<"'a','b' 的最小值是:"<<Min('a','b')<<endl;
|
||||
cout<<"2.3,3.2的最小值是:"<<Min(c,d)<<endl;
|
||||
cout<<"2.3,3.2的最大值是:"<<std::min(c,d)<<endl;//引用命名空间内部的最小值函数
|
||||
cout<<"2.3,3.2的最小值是:"<<myMin(c,d)<<endl;//更换class为typename
|
||||
// cout<<"2,'a' 的最小值是:"<<Min(2,'a')<<endl; //报错,不同类型无法处理,请看9-3-1.cpp
|
||||
system("pause");
|
||||
return 0;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>Stack<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><EFBFBD>ʾջ<EFBFBD>д<EFBFBD><EFBFBD>ŵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD>MAXSIZE<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD>Ĵ<EFBFBD>С<EFBFBD><EFBFBD>
|
||||
设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAXSIZE代表栈的大小。
|
||||
*/
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
@@ -32,14 +32,14 @@ class Stack{
|
||||
}
|
||||
};
|
||||
/*
|
||||
ԭ<EFBFBD>ͣ<EFBFBD>
|
||||
template <ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>::<3A><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>){};
|
||||
原型:
|
||||
template <模板参数列表>
|
||||
返回值类型 类模板名<模板参数名表>::成员函数名 (参数列表){};
|
||||
*/
|
||||
template<class T, int MAXSIZE>
|
||||
void Stack<T,MAXSIZE>::push(T e){
|
||||
if(full()){
|
||||
cout<<"ջ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>";
|
||||
cout<<"栈已满,不能再添加元素了!";
|
||||
return;
|
||||
}
|
||||
elem[++top]=e;
|
||||
@@ -48,7 +48,7 @@ void Stack<T,MAXSIZE>::push(T e){
|
||||
template<class T, int MAXSIZE>
|
||||
T Stack<T,MAXSIZE>::pop(){
|
||||
if(empty()){
|
||||
cout<<"ջ<EFBFBD>ѿգ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٵ<EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>"<<endl;
|
||||
cout<<"栈已空,不能再弹出元素了!"<<endl;
|
||||
return 0;
|
||||
}
|
||||
return elem[top--];
|
||||
@@ -57,7 +57,7 @@ T Stack<T,MAXSIZE>::pop(){
|
||||
|
||||
int main(int argc, char const *argv[])
|
||||
{
|
||||
//<EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//类模板实例化
|
||||
Stack<int,10> iStack;
|
||||
Stack<char,10> cStack;
|
||||
iStack.setEmpty();
|
||||
|
@@ -1,4 +1,4 @@
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD>ֱ<EFBFBD>Ӵ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дӴ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//设计一通用数组类,它能够直接存取数组元素,并能够对数组进行从大到小的排序。
|
||||
|
||||
#include<iostream>
|
||||
#include<cstring>
|
||||
@@ -20,7 +20,7 @@ class Array{
|
||||
|
||||
template<class T> T& Array<T>::operator[](int i){
|
||||
if(i<0||i>Size-1){
|
||||
cout<<"\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD>Խ<EFBFBD>磡"<<endl;
|
||||
cout<<"\n数组下标越界!"<<endl;
|
||||
exit(1);
|
||||
}
|
||||
return a[i];
|
||||
@@ -39,7 +39,7 @@ template<class T> void Array<T>::Sort(){
|
||||
a[i]=t;
|
||||
}
|
||||
}
|
||||
//template <> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><<3C>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>::<3A>ػ<EFBFBD><D8BB><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>){}
|
||||
//template <> 返回类型 类模板名<特化的数据类型>::特化成员函数名(参数表){}
|
||||
template<> void Array<char *>::Sort(){
|
||||
int p;
|
||||
for(int i=0;i<Size-1;i++){
|
||||
|
Reference in New Issue
Block a user