Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些 C 代码,其中有两个链表(比如 A 和 B),A 插入到 B 的特定位置,A 仍然有元素。
如何使用 C++ STL 有效地模拟相同的行为?如果我尝试拼接,它会使第二个空。
谢谢,戈库尔。
尝试插入:
B.insert( position, A.begin(), A.end() );
在“位置”之前在 B 中插入 A 元素的副本。A 本身保持不变。看到这个链接
您需要复制元素。考虑这样的事情:
std::copy(a.begin(), a.end(), std::inserter(b, b_iterator));
如果您希望两个列表共享相同的节点,则根本不支持std::list(STL 容器始终具有独占所有权)。您可以通过在列表中存储指针或使用 来避免重复元素boost::ptr_list,后者在内部存储指针但提供了更好的 API。
std::list
boost::ptr_list