【发布时间】:2021-05-22 14:46:04
【问题描述】:
通常,构造rb-tree 是O(N*log(N)) 时间。
但是,initialization of std::set from sorted elements is linear time。
它是如何工作的?初始化前是否有排序检查?还是从最右边开始搜索?
【问题讨论】:
-
可能出于相同的原因
std::set::insert重载如果提示实际上是正确的,则需要提示迭代器在恒定时间内工作。只需使用end()反复调用insert以获取提示,就可以在线性时间内对已排序的输入起作用。 -
我试图清理链接,但它似乎破坏了文本突出显示...
-
@FrançoisAndrieux 对我来说,两个版本都没有突出显示。那是 Chrome 的东西吗?
-
@Yksisarvinen 可能是,我正在使用 Chrome。
-
@FrançoisAndrieux 我使用的高光是由铬扩展的
Link to text Fragment制作的。而且你的亮点似乎不适用于我的设备..