提升指针容器插入 (ptr_list)

Posted

技术标签:

【中文标题】提升指针容器插入 (ptr_list)【英文标题】:boost pointer container insert (ptr_list) 【发布时间】:2009-08-16 09:03:16 【问题描述】:

由于某种原因,我无法让 ptr_list 插入元素。

boost::ptr_list<int> somelist;
int *someint = new int(123);
int *someint2 = new int(456);
somelist.push_back(someint);
boost:: ptr_list<int>::iterator i = somelist.begin();

somelist.insert(i,someint2);

有什么帮助吗?

【问题讨论】:

你 sn-p 对我来说编译得很好。错误信息是什么? 能否请您告诉您包含哪些标题?找不到匹配 'boost::ptr_sequence_adapter >,boost::heap_clone_allocator>::insert(boost::void_ptr_iterator<_stl ::_list_iterator> >,int>,int *)' 好吧,我想这是我使用的旧编译器(borland c++ builder 6)的具体问题。现在下载一个新版本来检查它是否能解决我的问题。 我已经收录了boost/ptr_container/ptr_list.hpp 您可能应该将解决方案写成答案并接受它,这样问题就不会一直悬而未决。对于寻找未解决问题的人来说,这将是浪费工作。 【参考方案1】:

一些更新。在又花了 24 小时后,我发现 Borland C++ Builder 6(非常旧的 2002 版)比全新的 C++ Builder 2009 更兼容 boost 1.39。 但他们似乎都不喜欢指针容器。

现在我很遗憾我没有在 MSVC 中开始这个项目,但这就是我所拥有的。

因此,如果有人知道如何在 C++ Builder 中使用指针容器,请分享此信息。对我来说,这个问题仍未解决。

切换回std::list&lt;boost::shared_pointer&gt;

【讨论】:

一些更新。 SVN 主干中的最新版本 boost 似乎对 Borland 进行了很多修复,并允许访问更多组件,但指针容器仍然存在错误。

以上是关于提升指针容器插入 (ptr_list)的主要内容,如果未能解决你的问题,请参考以下文章

set集合容器

STL——容器(List)List 的概念

C语言提升

数组链表list容器vector setstackqueue

容器操作使迭代器失效

链表插入排序——单指针移动