我有一个结构:
struct incorrect
{
unsigned short question;
unsigned short answerChoice;
}
堆排序函数:
template <typename iterator>
void heapSort(iterator begin,iterator end)
{
make_heap(begin,end);
sort_heap(begin,end);
}
一个合并结构向量问题的函数&#34;错误&#34;。我面临的问题是当我尝试对结构的矢量进行排序时,#34;不正确&#34;使用以下语法:
heapSort(omitKey1.question.begin(),omitKey1.question.end());
我收到的错误是问题不是错误的成员。我该如何解决这个问题? (我也尝试删除&#34;。问题&#34;但这似乎没有帮助)
答案 0 :(得分:1)
我认为你有类似
的东西vector<struct incorrect>omitKey1
因此,请使用sort(omitKey1.begin(),omitKey1.end(),compare);
并在比较中使用:return structure1.question < structure2.question
此外,这只是排序vector
,而不是heap
,所以我可能没有排序堆的答案。
同时查看http://www.cplusplus.com/reference/algorithm/sort_heap/
@ user3093536 this应该有帮助。