简单排序题
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
using namespace std;
class Sale
{
public:
string address;
string name;
int num;
//注意这里的const不能少,否则会报错
bool operator==(const Sale&s)
{
return this->address==s.address&&this->name==s.name;
}
};
bool Com(Sale s1,Sale s2)
{
if(s1.address!=s2.address)return s1.address<s2.address;
else return s1.name<s2.name;
}
int main()
{
int n;
cin>>n;
int m;
while(n--)
{
vector<Sale> sa;
cin>>m;
for(int i=0;i<m;i++)
{
Sale s;
cin>>s.name>>s.address>>s.num;
vector<Sale>::iterator it=find(sa.begin(),sa.end(),s);
if(it==sa.end())
{
sa.push_back(s);
}else
{
it->num+=s.num;
}
}
sort(sa.begin(),sa.end(),Com);
string temp="";
for(vector<Sale>::iterator it=sa.begin();it!=sa.end();it++)
{
if(it->address!=temp)
{
temp=it->address;
cout<<temp<<endl;
}
cout<<" |----"<<it->name<<"("<<it->num<<")"<<endl;
}
if(n)
cout<<endl;
}
return 0;
}