C++链表行为
我有一些 C 代码,其中有两个链接列表(比如 A 和 B),A 被插入到 B 的特定位置,并且 A 仍然有元素。
如何使用 C++ STL 有效地模拟相同的行为?如果我尝试拼接,它会使第二个空。
谢谢, 戈库尔。
I have some C code, where in there are two linked lists(say A and B) and A is inserted at a particular position into B and A still has elements.
How do I simulate the same behavior effectively using the C++ STL? If I try splice, it makes the second one empty.
Thanks,
Gokul.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试 insert:
在“位置”之前插入 A 元素的副本到 B 中。 A 本身保持不变。请参阅此链接
Try insert:
to insert copies of the elements of A in B before 'position'. A itself remains unchanged. See this link
您需要复制元素。考虑这样的事情:
如果您希望两个列表共享相同的节点,那么
std::list
根本不支持这种情况(STL 容器始终具有独占所有权)。您可以通过在列表中存储指针或使用boost::ptr_list来避免重复元素,boost::ptr_list在内部存储指针但提供更好的API。You need to copy the elements. Consider something like this:
If you want the same nodes shared by two lists, this is simply not supported by
std::list
(STL containers always have exclusive ownership). You can avoid duplicating the elements by storing pointers in the list, or by usingboost::ptr_list
, which internally stores pointers but offers a nicer API.