我完全被难倒了,看看例子并没有帮助我让这个排序功能起作用:
void sortRegistryByName(std::list<Transcript>& registry) {
std::sort(registry.begin(), registry.end(), [](const Transcript &f, const Transcript &s) { return f.name < s.name; });
}
上面的代码应该按照名称属性对Transcripts列表进行排序。
成绩单如下:
typedef struct Transcript_t {
std::string name; // Name of the transcript
std::string student_id;
std::list<std::pair<std::string, size_t>> grades; // List of (course, grade) pairs
} Transcript;
当我尝试编译时,sort函数会导致一大堆错误,其中包含与safe_iterators和operator相关的错误。
有人在这里看到任何真正愚蠢的错误吗?我对此视而不见。
答案 0 :(得分:7)
你必须调用std::list
的{{1}}函数,因为它没有随机访问迭代器:
sort