gpt4 book ai didi

c++ - C++中优先级队列的结构排序标准

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

我想知道是否可以使用相同的结构但使用不同的排序标准来排序两个不同的 priority_queues (STL)。想象一下这样的事情:

struct stuff {
int a, b;
}

priority_queue<stuff> a;
priority_queue<stuff> b;

请注意,这不是 C++ 的功能代码,只是伪代码。然后,我想知道 a 和 b 是否有可能在顺序上有所不同,一个最大的 stuff.a 在队列的开头,另一个有最大的 stuff.b。

非常感谢!

马克

最佳答案

有关 std::priority_queue 的文档有一个如何使用 lambda 的例子,所以只需创建其中的 2 个:

struct stuff {
int a, b;
};

void foo()
{
auto cmpBiggerA = []( const stuff &s1, const stuff &s2 ) { return s1.a > s2.a; };
auto cmpBiggerB = []( const stuff &s1, const stuff &s2 ) { return s1.b > s2.b; };

priority_queue<stuff,std::vector<stuff>,decltype(cmpBiggerA)> a( cmpBiggerA );
priority_queue<stuff,std::vector<stuff>,decltype(cmpBiggerB)> b( cmpBiggerB );
}

关于c++ - C++中优先级队列的结构排序标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50933750/

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