【发布时间】:2014-02-03 06:29:59
【问题描述】:
我正在阅读姓名列表,我想按字母顺序排列姓氏。该文件将包含这样的内容
史密斯约翰 467-604-4535
基德杰森 433-243-5252
等
class record
{
bool operator <(const record &rhs) const
{
return (lastname < rhs.lastname)
}
private:
string fn, ln, pn;
};
int main(int argc, char *argv[])
{
record data;
ifstream fs;
fs.open(arg2.c_str());
vector<record> vec;
while (fs >> data)
{
vec.push_back(data);
}
fs.close();
sort (vec.begin(), vec.end(), data);
for (int i=0; i < vec.size(); i++)
cout << vec[i];
}
给我错误的代码行是 sort (vec.begin(), vec.end(), data) 它给了我很多错误。据我所知,其他一切都在工作。这只是排序。有什么想法有什么问题吗?如何对向量进行排序?
【问题讨论】:
-
std::sort有两个重载,它们都没有将 T 类型的对象作为第三个参数。只需使用sort(vec.begin(), vec.end()); -
所以我们应该以某种方式猜测错误是什么?