gpt4 book ai didi

c++ - 按属性对包含对象的列表进行排序

转载 作者:太空狗 更新时间:2023-10-29 20:13:55 25 4
gpt4 key购买 nike

我完全被难住了,环顾示例并没有帮助我让这个排序函数工作:

void sortRegistryByName(std::list<Transcript>& registry) {
std::sort(registry.begin(), registry.end(), [](const Transcript &f, const Transcript &s) { return f.name < s.name; });
}

上面的代码应该按名称属性对成绩单列表进行排序。

实录如下:

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;

当我尝试编译它时,排序函数会导致一大堆错误,这些错误与 safe_iterators 和运算符有关。

有人在这里看到任何非常非常愚蠢的错误吗?我对此视而不见。

最佳答案

您必须调用 std::listsort 函数,因为它没有随机访问迭代器:

std::list<Transcript> registry;
registry.sort([](const Transcript &f, const Transcript &s) { return f.name < s.name; });

关于c++ - 按属性对包含对象的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18955062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com