使用 std::shared_ptr<std::vector> 而不是 boost::shared_array 有意义吗?
Does it make sense to use std::shared_ptr<std::vector> instead of boost::shared_array?
现在我正在重写部分代码以使用c++ 11标准。在一些地方,我发现了以下代码:
boost::shared_array<uint8_t> array;
可以用
代替吗?std::shared_ptr<std::vector<uint8_t>> array;
我试图在我的代码中替换所有已经在c++ 11中呈现的boost的功能。
我需要澄清一点。实际上,我需要一个原始数组(但有refcount,所以它可以自动删除),不需要所有这些矢量特征。所以boost::shared_array解决了我想要的问题,而没有任何额外的成本。但我正试图使我的代码尽可能使用新标准(尽管许多库从boost仍然不包括在新标准)。
谢谢。
考虑到编译器对c++ 11支持的当前状态以及人们维护构建的懒惰,我将保持现状。Boost有一个很好的特性,它几乎可以在任何地方工作,包括旧的编译器,您想要做的更改几乎不会改进代码。
这段代码也不完全相同
相关文章:
- 使用std::multimap迭代器创建std::list
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 从持续时间构造std::chrono::system_clock::time_point
- std::具有相同基类的类的变体
- std::向量与传递值的动态数组
- 使用std::vector的OpenCL矩阵乘法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- std::condition_variable::wait()如何评估给定的谓词
- 如何获取std::result_of函数的返回类型
- std::原子加载和存储都需要吗
- 将对象移动到std::shared_ptr
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 引用 std::shared:ptr 以避免引用计数
- boost::shared_ptr和std::shared-ptr的同居
- 我可以用std::shared_ptr而不是boost::shared-ptr构建boost库吗
- std::dynamic_pointer_cast从基到派生的std::shared返回NULL
- QSharedPointer VS std::tr1::shared_ptr VS boost::tr1::shared