我想知道制作背后的理由是什么 std::list<>::splice 使引用拼接到新容器中的子序列的迭代器无效。这看起来有点不合逻辑,特别是在标准方面 std::container::swap 规范。根据语言标准 std::container::swap 不会使任何迭代器失效。这是一个非常合理的实用规范。但是,我会说 std::list<>::splice 从迭代器保留行为中也会受益匪浅。
我理解可能存在一些基于迭代器可达性等概念的纯学术考虑因素。但同时也是如此 splice 是一个 std::list特定的操作,意味着为它提供定制的规范可能不会对STL设计造成严重的概念损害。
那是什么?它会使一些实际的实现失效或过于复杂吗? std::list,我没认识到?