std::list<>::splice
我想知道使引用被拼接到新容器中的子序列的迭代器无效背后的基本原理是什么。这对我来说看起来有点不合逻辑,尤其是在标准std::container::swap
规范的情况下。根据语言标准std::container::swap
,不会使任何迭代器失效。这是一个完全合理的实用规范。但是,我想说这std::list<>::splice
也将从保留迭代器的行为中受益匪浅。
我知道基于迭代器可达性等概念可能存在一些纯粹的学术考虑。但同时splice
是一个std::list
特定的操作,这意味着为其提供定制的规范可能不会对一般的 STL 设计。
那是什么?std::list
它是否会取缔或使某些我无法识别的实际实现变得过于复杂?