gpt4 book ai didi

c++ - 类指针 vector 上的 std::sort()

转载 作者:可可西里 更新时间:2023-11-01 18:16:11 28 4
gpt4 key购买 nike

我有一个类指针 vector std::vector<Square*> listSquares .我想用类的属性之一作为键对它进行排序。这就是我正在做的

bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}

std::sort(listSquares.begin(), listSquares.end(), compById)

但是编译器说:错误:没有匹配函数来调用 'sort(std::vector::iterator, std::vector::iterator, )'

我做错了什么?

最佳答案

为了使用 compById 作为 std::sort 的参数,它不应该是一个成员函数。这是错误的

class Square
{
bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}
...
};

这样更好,

class Square
{
...
};

bool compById(Square* a, Square* b)
{
return a->getId() < b->getId();
}

关于c++ - 类指针 vector 上的 std::sort(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366978/

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