作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
运行以下示例,我在标记行中收到调试断言。
std::priority_queue<int, std::vector<int>, std::greater_equal<int>> queue_int;
queue_int.push(1);
queue_int.push(2);
queue_int.push(1); // Debug Assertion Failed: Expression invalid comparator
有什么提示吗?帮助非常感谢!
最佳答案
当您使用带有比较器的 STL 数据结构时,该比较器必须是严格的,如果它接收到要比较的相等对象,则永远不会返回 true。
想象一下当比较、交换 2 个相同的对象时的情况,下一次比较将再次在相同的 2 个对象之间进行。在这种情况下,STL 排序步骤将永远不会停止。
尝试 std::greater
而不是 std::greater_equal
关于c++ - 将 STL priority_queue 与 greater_equal 比较器类一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53647135/
我刚开始使用 Dagger 2,想知道与我目前用来实现依赖注入(inject)的技术相比,它有什么优势。 目前,为了实现 DI,我创建了一个具有两种风格的项目:mock 和 prod。在这些风格中,我
我是一名优秀的程序员,十分优秀!