问题标签 [ptr-vector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何从 boost::ptr_vector 中删除元素
所以我试图通过使用 boost::ptr_vector 来摆脱我的 std::vector 。现在我正在尝试从一个元素中删除一个元素,并将删除的元素也删除。对我来说最明显的事情是:
但这甚至不会编译(完整的错误信息见下文)。我已经像在 std::vector 上一样尝试了擦除/删除习语,但 boost::ptr_vector 的所有算法都与 std::vector 中的算法略有不同。
所以我的问题:
- 如何从 ptr_vector 中删除指针?
- 我还需要手动删除()我删除的那个元素吗?
编译器错误:
c++ - boost::ptr_vector 和 boost::any 的问题
好的,所以我有疑问,我想知道这是否可能:
我正在使用带有通用数据(字符串、整数、布尔值等)的数据库。每当构造对象或修改对象的成员时,我都必须使用特定操作(SELECT 或 UPDATE)查询数据库。首先,这不是与数据库相关的问题,我真正的问题是我有一个 ptr_vector,它保存 boost::any 指向对象成员的指针。在这样的代码中:
然后我将要修改的成员传递给另一个杂项类的函数,该函数以 boost::any* 为参数:
同一个类接受 any*,并执行以下操作:
Enemy_Values 是一个 ptr_vector。因此,当我访问这个具有 Enemy_Values 作为成员的 misc_class 时,我想更改内部的 auto_ptr 指向的值:
在这里,我得到一个违规错误。我尝试了很多事情,有人告诉我,我不应该使用 auto_ptr 容器或使用 boost::any 来回转换。这是我正在做的可能,还是有更好更直观的方法?
提前致谢。
c++ - 发布 boost::ptr_vector,与文档不匹配
我正在使用 boost 1.37,我正在尝试使用 boost::ptr_vector,并转移它的所有权,以便我可以从函数中返回它。查看提升文档(http://www.boost.org/doc/libs/1_36_0/libs/ptr_container/doc/tutorial.html#new-functions)
我试过了:
}
编译器错误:
这是 boost 文档中的一个小故障吗?我可以得到一个 auto_ptr 和取消引用来取回 ptr_vector 吗?
c++ - 将 boost::ptr_vector 添加到双端队列,typeid 不匹配
我正在尝试使用 push_back() 将 boost::ptr_vector 添加到 std::deque。当我这样做时,我得到一个类型 ID 不匹配的 BOOST::ASSERT。
在“boost_ptr_container_clone_allocator”中
来自 TotalView,res
并且r
:
它们在我看来是一样的。
我试图添加的 ptr_vector 有 的实例diagnostic_database_loader::JointDiagnosticDBClass
,它是从diagnostic_database_loader::DiagnosticDBClass
上面派生的。
我打印出 ptr_vector 中元素的 typeid
我试图用一个简单的测试程序重现这一点,但我没有遇到同样的问题。
测试程序运行良好。
有谁知道如何
* 在测试代码中重现问题?
* 修复真实程序中的问题?
如果有人想要完整的代码:
https ://code.ros.org/svn/wg-ros-pkg/trunk/sandbox/diagnostic_database_loader
c++ - 将对象从一个 Boost ptr_container 移动到另一个
我想将某些元素从 a 移动到 b:
上面的代码没有编译,因为release函数返回boost::ptr_container_detail::static_move_ptr<...>
,不适合推回。
我应该如何进行?
编辑:我发现返回的对象具有.get() .release()
,它提供了一个原始指针(这也可能导致一些异常安全问题)。但是,我宁愿不依赖未记录的内部功能,因此请随时分享任何更好的解决方案......
boost - 在另一个 boost::ptr_vector 中推回 boost::ptr_vector<...>::iterator?
我有以下代码(只是在这里输入,可能有拼写错误或其他东西):
我现在的问题是我不能以任何方式 push_back 迭代器,我只是没有将指针从迭代器中取出。
有没有我没有看到的简单方法,或者 boosts ptr_vector 是这种情况下的错误选择?
提前致谢。
boost - 迭代 boost ptr_vector
我有一个我自己的对象的 ptr_vector 列表。像这样的东西:
c++ - 有没有办法 Boost.Assign 一个 ptr_vector?
通常是这样的:
除了一个:
如果您需要知道原因;我正在使用ptr_vector
而不是vector
只使用它,所以我不必删除元素,但我需要使用 Boost.Assign 来初始化它,因为我希望它ptr_vector
是const
(不能使用push_back()
或pop_back()
代码中的任何其他地方。)
提前感谢您的回答,我可能使用了错误的容器类型?
c++ - boost::ptr_vector 和 find_if
我有一堂课:
当我编译这个时,我得到错误:
错误 1 错误 C2440:“正在初始化”:
无法从“const CMDatabase::Try”转换为“CMDatabase::Try
*”c:\program files\microsoft visual studio 9.0\vc\include\functional 296
谁能告诉我我做错了什么以及如何纠正它。
c++ - ptr_vector - _CrtDumpMemoryLeaks() - 即使调用了析构函数,内存泄漏
我正在开发一个游戏引擎,在一个较早的问题中,有人建议我开始使用 boost::ptr_vector 来维护一个指针列表。
基本思想是有几个State,每个State都有一个SceneGraph。每个状态都有它们初始化的几个资源,然后填充自己的场景图。SceneGraph 有一个 boost::ptr_vector,它将资源指针塞入其中。
以下是相关代码:
在 TestState 中创建和添加到 SceneGraph 的资源
场景图
使用相关行编辑 main.cpp
我正在使用 _CrtDumpMemoryLeaks() 来输出内存泄漏日志报告。日志报告告诉我有内存泄漏;
_CrtDumpMemoryLeaks() 是在 boost::ptr_vector 上遇到问题还是我做错了什么?调试器告诉我 State 确实调用了它的析构函数(它有;delete sceneGraph),我还验证了 SceneGraph 的析构函数也被调用了。
非常感谢任何帮助,我很想看到一个空的内存泄漏报告:-)