gpt4 book ai didi

c++ - C++的STL priority_queue with struct

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

我们如何将 STL priority_queue 用于结构?任何插入和弹出的插图,其中结构具有多种数据类型?
说:struct thing { int a; char b;} glass[10]; .
现在如何使用“int a”将此结构放入 priority_queue 进行排序?

最佳答案

这里是对 your original question, which you deleted 的略微修改的答案没有明显的原因。原始文件包含足够的信息供您弄清楚这一点,但这里是这样的:提供一个使用 int 进行比较的小于比较。

您需要做的就是提供一个仿函数来实现与严格弱排序的小于比较,或者为您的类提供一个小于运算符来实现相同的操作。此结构满足要求:

struct thing
{
int a;
char b;
bool operator<(const thing& rhs) const
{
return a < rhs.a;
}
};

然后

std::priority_queue<thing> q;
thing stuff = {42, 'x'};
q.push(stuff);
q.push(thing{4242, 'y'}); // C++11 only
q.emplace(424242, 'z'); // C++11 only
thing otherStuff = q.top();
q.pop();

关于c++ - C++的STL priority_queue with struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15601973/

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