问题标签 [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++ - C++:成员引用还是指针?
我有一个boost::ptr_vector
需要传递给几个仿函数的对象集合(当前)(我们称之为 vec)。我希望所有的仿函数都有一个指向同一个 vec 的引用/指针,它本质上是一个缓存,这样每个仿函数都有相同的数据缓存。我可以想到三种方法来做到这一点:
将 a 传递给Functor 类
boost::ptr_vector<object>&
的构造函数Functor
并拥有一个成员boost::ptr_vector<object>&
将 a 传递
boost::ptr_vector<object>*
给 Functor 的构造函数并boost::ptr_vector<object>*
在 Functor 类中有一个成员避免使用
boost::ptr_vector
并直接将数组 (object*
) 传递给构造函数
我曾尝试使用方法 3,但一直有人告诉我应该使用向量而不是原始指针。因此,我尝试了方法 2,但是由于指针添加了额外的间接级别,这增加了我的程序的延迟。我目前正在使用方法 1,但是我可能需要在仿函数的生命周期内重新分配缓存(因为数据缓存可能会更改),因此这可能不是一个合适的选择。
我不完全理解。我假设仿函数被复制的过程中的某个地方(尽管这些都存储在 ptr_vector 本身中)。
方法 3 最适合我的情况吗?方法 2,太慢了(延迟非常关键),至于方法 1,我一次又一次地被建议使用向量来代替。
非常感谢任何建议
c++ - C++:为什么 boost::ptr_vector 调整大小需要对象具有默认构造函数
我在 std::vector 上使用 boost::ptr_vector 因为它将为我处理所有指针的删除。但是,当我这样做时:
它抱怨SoftLabelRandomTreeFunctor
没有默认构造函数。但是,我的印象是它只需要调整大小以适应number_of_functors
* 指向 a 的指针的大小SoftLabelRandomTreeFunctor
,而不是number_of_functors
* aSoftLabelRandomTreeFunctor
本身的大小?
c++ - BOOST 和 C++:似乎无法让多态性发挥作用
我正在使用 ptr_vector 来存储“形状”。我试图用派生的形状类填充它,例如“圆圈”,每次我尝试向下转换它们时,我都会得到糟糕的演员表。
c++ - C++ 使用 boost::ptr_vector 泄漏内存
当打开任务管理器查看内存使用情况时,它会以 0.3MB 内存开始使用。将 100,000 个对象添加到 ptr_vector 后,使用了 2.3MB 的内存。在向量上使用 .clear() 后,内存变为 .8-.9MB。内存使用量增加的原因是什么?
这是代码:
谢谢您的帮助。
c++ - boost::ptr_vector 和指针
我想做这样的事情:
我希望我的对象都被指针引用,这样它们的复制构造函数就不会被调用,而且我还希望ptr_vector
在整个向量超出范围时控制内存管理。
但是,编译器抱怨最后一行。我认为这是因为我正在存储X*
,而不仅仅是X
.
X 只包含原始类型,以防有人询问。
如何使用ptr_vector
to 存储X*
?
编辑:
c++ - boost::ptr_vector 排序函数
我有一个 boost::ptr_vector,我想按排序顺序维护它。
我正在创建一堆包含几个简单字符串和值的客户对象,然后将它们存储在 boost::ptr_vector 中,并且它们需要按其中一个字符串排序。
我环顾四周,但似乎找不到关于 boost::ptr_vector 成员函数的太多信息,但似乎有一个名为 sort() 我认为与我正在尝试做的事情相关,但是没有太多信息关于这个功能的使用。
是否有可用于 boost::ptr_vector 的“按顺序插入”类型函数?还是我需要将所有内容加载到向量中然后排序?
任何帮助将不胜感激谢谢
c++ - boost::ptr_vector 成员函数列表
我很难找到 boost::ptr_vector 有什么成员函数..
我能找到的只是http://www.boost.org/doc/libs/1_54_0/libs/ptr_container/doc/ptr_vector.html,但没有列出我知道的 push_back() 绝对是一个函数..
是否有任何资源可以找到可以与 boost::ptr_vector 及其原型一起使用的函数?
具体来说,如果有类似于 STL vector.insert() 的“插入”类型函数,我很感兴趣
任何帮助,将不胜感激..
c++ - 为 boost::ptr_vector 创建一个容器类
我正在尝试为 boost::ptr_vector 创建一个容器类,而我只是在让迭代器工作时遇到了一些麻烦..
这是我试图实现的成员函数之一:
我得到的错误是:
关于如何解决这个问题的任何想法?
c++ - 制作 boost::ptr_vector 容器类 push_back 函数
我只是对容器类和模板有所了解,并且无法弄清楚如何正确实现它们..我所有的问题都非常相似,所以一旦我得到这个排序,我想我应该没问题..
这是我试图实现的 push_back 成员函数的代码:
这就是它在 p_vcontainer.h 中的定义方式:
这是我从编译器得到的错误:
这就是我在main中实现它的方式:
关于我做错了什么的任何想法?
c++ - 从 boost::ptr_vector 获取模板参数
从boost::ptr_vector<T>
我试图得到T
,但boost::ptr_vector<T>::value_type
似乎是T*
。我怎样才能得到T
?
看着文档,我看到:
这些都没有帮助...