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