gpt4 book ai didi

c++ - 带节点指针的 STL 堆

转载 作者:搜寻专家 更新时间:2023-10-31 01:55:12 25 4
gpt4 key购买 nike

我有一个包含成员的节点类

int weight;
Node *left;
Node *right;

我想用STL函数创建一个堆

make_heap(Iterator , Iterator, comp) 
pop_heap(Iterator, Iterator, comp)

应用于节点指针的 vector 。如何为这些函数创建比较对象(或比较函数)?

最佳答案

struct node_comparison : public std::binary_function< const Node*, const Node*, bool > 
{
bool operator()( const Node* const a, const Node* const b ) const
{
return a->weight < b->weight;
}
};

请注意,此比较对象 比较权重,但我认为这是所需的行为。

关于c++ - 带节点指针的 STL 堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8659129/

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