在 C++ 中拆分和合并 std::list
splitting and merging std::list in C++
为什么std::list
s不能是split/merged的常数时间?不就是链表吗?
我确定我遗漏了什么。能否请您解释一下这背后的原因?
这是要求 size()
为恒定时间的副作用(有人说这是一个相当不幸的副作用)。不可能同时具有恒定时间 size()
和恒定时间 splice()
的子列表。由于所有标准容器都需要具有恒定时间 size()
,这必然要求子列表 splice()
是线性的。
为什么std::list
s不能是split/merged的常数时间?不就是链表吗?
我确定我遗漏了什么。能否请您解释一下这背后的原因?
这是要求 size()
为恒定时间的副作用(有人说这是一个相当不幸的副作用)。不可能同时具有恒定时间 size()
和恒定时间 splice()
的子列表。由于所有标准容器都需要具有恒定时间 size()
,这必然要求子列表 splice()
是线性的。