gpt4 book ai didi

c++ - make_heap() 编译问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:45:46 27 4
gpt4 key购买 nike

编译如下:

class Compare
{
bool cmp(const int& a, const int& b){return a>b;}
};

int main()
{
vector<int, Compare> v;
make_heap(v.begin(), v.end(), Compare());
}

导致编译错误 - 在“class Compare”中没有名为“rebind”的类模板。可能是什么原因?我使用带有 gcc 的 RedHat Linux。非常感谢。

最佳答案

您在 begin()end() 附近缺少括号,并且以错误的方式定义了比较器。它应该是这样的:

#include <vector>
#include <algorithm>
#include <functional>

struct Compare: std::binary_function<int const&, int const&, bool>
{
public:
bool operator()(const int& a, const int& b){return a>b;}
};

int main()
{
std::vector<int> v;
std::make_heap(v.begin(), v.end(), Compare());
return 0;
}

关于c++ - make_heap() 编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090788/

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