堆矢量排序

时间:2014-03-15 19:56:16

标签: c++ sorting

我有一个结构:

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;但这似乎没有帮助)

1 个答案:

答案 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应该有帮助。