gpt4 book ai didi

c++ - 在结构指针 vector 上调用 C++ std::sort

转载 作者:行者123 更新时间:2023-11-30 05:22:30 25 4
gpt4 key购买 nike

*编辑以添加错误消息

当我在指向我之前在程序中定义的结构的指针 vector 上调用排序函数时,Visual Studio 的智能感知以红色标记排序函数。

我已经实例化了一个指向我的比较方法的函数指针,并按如下方式调用排序:

bool(*compareNodes)(nodePtr, nodePtr) = compNodes;

sort(frontier.begin(), frontier.end(), compNodes);

/* flags compnodes and sort; "cannot determine which instance of overloaded
* function "compNodes is intended" */

compNodes 函数:

static bool compNodes(nodePtr Node1, nodePtr Node2){
if (Node1->fValue != Node2->fValue)
return (Node1->fValue < Node2->fValue);
else
return (Node1->ID > Node2->ID);
}

最佳答案

大胆猜测:compNodes 过载。您巧妙地尝试使用 compareNodes 获取指向正确重载的指针,但您实际上并没有在 std::sort() 中使用它。将行更改为:

sort(frontier.begin(), frontier.end(), compareNodes);

如果您的警告级别足够高,您会看到 compareNodes 当前未使用。

关于c++ - 在结构指针 vector 上调用 C++ std::sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630447/

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