2
排序與對象名單我完全難倒,在實例環顧四周並沒有幫助我得到這個排序功能的工作:地產
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 :: sort'需要隨機訪問迭代器,'的std :: list'只提供雙向迭代器。但是,[它有一個成員'.sort'](http://en.cppreference.com/w/cpp/container/list/sort),您可以使用它。 – Xeo
我不明白你爲什麼在這裏使用'size_t' - std :: list>等級;',並且給定它的上下文,你可能會更好與'std :: map ' - 假設不會有重複的課程。 –
Aesthete
不幸的是,這部分並不是我的設計,這是我現在正在做的課程的一個優化,而成績單也是這樣給出的。 – user2806423