【发布时间】:2012-01-26 22:24:31
【问题描述】:
我更改了一些代码以将std::set 转换为boost::ptr_set。但是,代码无法编译;问题是我假设来自ptr_set 插入的返回值与set 插入(pair<myIter, bool>)相同。在 Google 上一个小时后,我找到了this,结果发现来自ptr_set 插入的返回值似乎是一个布尔值。
是否有任何关于 ptr 容器和 std 容器之间差异的明确文档?我在boost网站上没有找到任何东西,但也许我只是愚蠢......
编辑
好吧 - 让我困惑的是这段代码
t.insert(s.release(s.begin()));
p = t.insert(s.release(s.begin()));
在gcc的第一行报告没有错误,但在第二行报告operator=没有匹配,所以我认为错误在返回类型中。但是,如果您注释掉第二行,则第一行将报告为错误(发布不返回迭代器)。我发布的链接加剧了我的困惑,其中 ptr_container 的作者指出“ptr_set 中的插入()返回布尔值”。但是,继续阅读链接,很明显当时代码还没有完成。谢谢克雷克。
【问题讨论】:
-
缺少the documentation 怎么办?
-
如果您发布的链接中有关于集合插入的返回值的内容,那么我找不到它。或在其他几个页面中。没有一个示例显示集合插入的返回值。这对我来说似乎很缺乏。
-
引用包含this page,其中概述了
insert(从我的第一个链接到这里需要单击2 次)。 -
我同意@EML:文档真的很难使用。
标签: c++ boost boost-ptr-container