gpt4 book ai didi

C++:为什么boost::ptr_vector resize需要对象具有默认构造函数

转载 作者:太空狗 更新时间:2023-10-29 21:03:27 28 4
gpt4 key购买 nike

我在 std::vector 上使用了 boost::ptr_vector,因为它将为我处理所有指针的删除。但是当我这样做时:

ptr_vector<SoftLabelRandomTreeFunctor> functors;
functors.resize(number_of_functors);

它提示 SoftLabelRandomTreeFunctor 没有默认构造函数。然而,我的印象是它只需要调整到足够大以适应 number_of_functors * 指向 SoftLabelRandomTreeFunctor 的指针的大小,而不是 number_of_functors * SoftLabelRandomTreeFunctor 本身的大小?

最佳答案

我对 Boost 并没有真正的经验,所以对我的回答持保留态度。但是,浏览 boost::ptr_vector 的文档让我觉得你想要的(从对问题的评论中得出的结论)应该可以这样做:

boost::ptr_vector< boost::nullable<SoftLabelRandomTreeFunctor> > functors;
functors.resize(number_of_functors, 0);

供您阅读和得出自己结论的引用资料:

关于C++:为什么boost::ptr_vector resize需要对象具有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383357/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com