相关疑难解决方法(0)

std :: map键类必须满足哪些要求才能成为有效键?

我想将给定类的对象映射到另一个对象的对象.然而,我想用作关键的类不是由我编写的,而是一个struct带有一些值的简单类.std :: map命令它的内容,我想知道它是如何做的,以及是否有任意类可以用作键或者是否需要定义一组需求(运算符和不需要).

如果是这样,我可以为实现运算符映射用途的类创建一个包装器.我只需要知道我需要先实现什么,并且我在网上找到的类的引用都没有指定它们.

c++ stl key map

70
推荐指数
2
解决办法
4万
查看次数

与total-order相比,partial-order是否足以构建堆?

C++ std :: priority_queue只需要一个部分顺序.但如果它的实现是二进制堆,它是如何工作的?例如:假设我们有一个偏序集( {a, b, c, x}, {c < b, b < a, c < a} ),x具有无关a,b,c.那么最大堆是:

layer 1:    x
layer 2:  b   x
layer 3: x x a c
Run Code Online (Sandbox Code Playgroud)

在弹出操作之后,以教科书中常见的方式,即用root替换root c并将大小减小1.然后我们需要在下面的树根下堆积树:

layer 1:    c
layer 2:  b   x
layer 3: x x a
Run Code Online (Sandbox Code Playgroud)

我们会互换c,b因为c < b,不是吗?什么?从那以后我们仍然没有有效的堆b < a.但b不能"看" a.

c++ algorithm stl std

1
推荐指数
1
解决办法
1706
查看次数

标签 统计

c++ ×2

stl ×2

algorithm ×1

key ×1

map ×1

std ×1