sort算法的问题
bg205 2006-03-25 08:27:33 #include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
//自定义类型
struct MyStruct
{
unsigned long int id;
unsigned long int cost;
};
typedef MyStruct elemType;
bool cmp(elemType&,elemType&);
void Print(const elemType&);
int main()
{
elemType tempData;
unsigned long int id,cost;
ifstream fin("data.txt");
vector<elemType> soureList;
while(fin>>id)
{
fin>>cost;
tempData.id=id;
tempData.cost=cost;
soureList.push_back(tempData);
}
cout<<"原始数据:"<<endl;
for_each(soureList.begin(),soureList.end(),Print);
sort(soureList.begin(),soureList.end(),cmp); //问题出现在此处???
cout<<"按id升序排序后的数据:"<<endl;
for_each(soureList.begin(),soureList.end(),Print);;
return 0;
}
//按id升序排序
bool cmp(elemType& a, elemType& b)
{
return (a.id<b.id);
}
void Print(const elemType& data)
{
cout<<data.id<<" "<<data.cost<<endl;
}
我的程序编译到此出问题sort(soureList.begin(),soureList.end(),cmp); //问题出现在此处???