使用 std::shared_ptr<std::vector> 而不是 boost::shared_array 有意义吗?

Does it make sense to use std::shared_ptr<std::vector> instead of boost::shared_array?

本文关键字:std shared boost array 有意义 vector lt ptr 使用 gt      更新时间:2023-10-16

现在我正在重写部分代码以使用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有一个很好的特性,它几乎可以在任何地方工作,包括旧的编译器,您想要做的更改几乎不会改进代码。

这段代码也不完全相同