求大哥解答 代码块的那一段代码能否帮忙完整地解释一下

#include
#include
#include
#include
#include
#include
using namespace std;

class Fifa
{
string team_name;
string country_name;
int point_2019,rank_2019;
int point_2018,rank_2018;
bool rank_18;
int difference;
public:
Fifa()
{
team_name = “”;
country_name = “”;
point_2019 = 0;
point_2018 = 0;
rank_18=false;
}
Fifa(string tn,string cn,int p9,int p8)
{
team_name = tn;
country_name = cn;
point_2019 = p9;
point_2018 = p8;
}
void set_rank_2019(int i)
{
rank_2019=i;
}
void set_rank_2018(int j)
{
rank_2018=j;
}
void get_difference()
{
difference=rank_2019-rank_2018;
}
void display()
{
cout<<team_name<<" “<<country_name<<” "<<difference<<endl;
}
void set_rank()
{
rank_18=true;
}
bool operator<(Fifa& f)
{
if(rank_18== false)
return point_2018>f.point_2018;
else
return point_2019>f.point_2019;
}

	**bool operator==(Fifa& f)  **//这一句定义宣称了谁和谁之间的比较**
	{
		if(rank_18== false)
        {
            return point_2018 == f.point_2018;
            rank_18=true;
        }
	    else
            return point_2019==f.point_2019;
	}
};**

class Manage
{
list l;
public:
void add(Fifa& f)
{
l.push_back(f);
}
void show()
{
list::iterator i=l.begin(),j=l.begin();
advance(i,3);
advance(j,6);
for(;i!=j;i++)
i->display();
cout << endl;
}
void Merge(Manage& f)
{
l.merge(f.l);
l.unique();
}
void sort1()
{
l.sort();
list::iterator i=l.begin();
for(int j=1;i!=l.end();i++,j++)
i->set_rank_2018(j);
list::iterator j=l.begin();
for(;j!=l.end();j++)
j->set_rank();
l.sort();
list::iterator k=l.begin();
for(int j=1;k!=l.end();k++,j++)
k->set_rank_2019(j);
list::iterator p=l.begin();
for(;p!=l.end();p++)
p->get_difference();
}
};

int main()
{
ifstream in1(“E:\FIFA2019.01.txt”);
ifstream in2(“E:\FIFA2019.02.txt”);
Fifa f1[]={},f2[]={};

string f,t_n,c_n;
int i=0,j=0,p_9,p_8;

Manage m1,m2;


while(!in1.eof())
{
    getline(in1,f);
    istringstream istr(f);
    stringstream os1,os2;
    int k=0;
    while(!istr.eof())
    {
    	getline(istr,f,',');
    	switch(k){
    		case 0:{t_n=f; break;}
    		case 1:{c_n=f; break;}
    		case 2:{os1<<f; os1>>p_9; break;}
    		case 3:{os2<<f; os2>>p_8; break;}
		}
		k++;
	}
	f1[i]=Fifa(t_n,c_n,p_9,p_8);
	m1.add(f1[i]);
}

while(!in2.eof())
{
    getline(in2,f);
    istringstream istr(f);
    stringstream os1,os2;
    int k=0;
    while(!istr.eof())
    {
    	getline(istr,f,',');
    	switch(k){
    		case 0:{t_n=f; break;}
    		case 1:{c_n=f; break;}
    		case 2:{os1<<f; os1>>p_9; break;}
    		case 3:{os2<<f; os2>>p_8; break;}
		}
		k++;
	}
	f2[j]=Fifa(t_n,c_n,p_9,p_8);
	m2.add(f1[j]);
}

m1.Merge(m2);
m1.sort1();
m1.show();

in1.close();
in2.close();
return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值