C++面向对象程序设计之C++的初步知识(7)

sort(i1,i2,i3);                    //调用模板函数,此时T被int代替
sort(d1,d2,d3);                    //调用模板函数,此时T被double代替
sort(g1,g2,g3);                    //调用模板函数,此时T被long代替
sort(c1,c2,c3);

system("pause");
return 0;
};

用引用对三个变量从小到大排序

10.编一个程序,将两个字符串链接起来,结果取代第一个字符串。要求用string方法。

#include<iostream>
#include<string>
using namespace std;
int main() 
{
    string string1,string2,string3;
    string1="Hello";
    string2="World";
    string3=string1+string2;
    string1=string3;
    cout<<"string1="<<string1<<endl;
    cout<<"string2="<<string2<<endl;
    system("pause");
    return 0;
}

用string方法将两个字符串连接并取代第一个

11.用string方法,输入一个字符串,并逆向输出。

#include<iostream>
#include<string>
using namespace std;
int main() 
{
    int ret,i;
    string string1,string2;
    cin>>string1;
    //string1="Hello";
    string2=string1;
    ret = string1.length();

for (i=0;i<ret;i++)
        string2[i]=string1[ret-1-i];
   
    cout<<string2<<endl;
    system("pause");
    return 0;
}

用string方法逆向输出字符串

12.有5个字符串,要求对它们按由小到大的顺序排列,用string方法。

参考例1.15

13.编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型,单精度型,双精度型。用重载函数实现。

注:因为本人对C++的数字类型不太了解,故仅供参考。-------------始终觉得,本题又是题意不清。。。是n个相同类型的数据,还是n个数据可以不同类型,如果是不同类型,根据13,14题的语境,本题应用类似于例1.6的方法处理,可是例1.6函数重载的例子又是3个相同类型的。-------------目前还没学习怎么处理不固定数量的输入数据,故我只处理3个数据,可以提供一个思路,用递归处理,毕竟,如果用户输入10个数甚至更多但还是用这种方法的话,会累死。

#include<iostream>
using namespace std;
int sort(int a,int b, int c)           
{
int temp;
if(a>b) {temp=a;a=b;b=temp;}
if(c<a) cout<<c<<','<<a<<','<<b<<endl;
    else if(c<b) cout<<a<<','<<c<<','<<b<<endl;
        else cout<<a<<','<<b<<','<<c<<endl;
return 0;
}

float sort(float a,float b, float c)           
{
float temp;
if(a>b) {temp=a;a=b;b=temp;}
if(c<a) cout<<c<<','<<a<<','<<b<<endl;
    else if(c<b) cout<<a<<','<<c<<','<<b<<endl;
        else cout<<a<<','<<b<<','<<c<<endl;
return 0;
}

long sort(double a,double b, double c)         
{
double temp;
if(a>b) {temp=a;a=b;b=temp;}
if(c<a) cout<<c<<','<<a<<','<<b<<endl;
    else if(c<b) cout<<a<<','<<c<<','<<b<<endl;
        else cout<<a<<','<<b<<','<<c<<endl;
return 0;
}

int main()
{
int a,b,c;
float d,e,f;
double g,h,i;

cin>>a>>b>>c;
cin>>d>>e>>f;
cin>>g>>h>>i;
                           
sort(a,b,c);
sort(d,e,f);                     
sort(g,h,i);


system("pause");
return 0;
}

用重载函数对n个数据进行从小到大排序

14.对13题改用函数模板实现,并进行对比分析。

题9和13的结合一下。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/704a395fc66352bfe16e015f30ba1748.html