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

标签 c++ boost c++11 stl

现在我正在重写部分代码以使用 C++11 标准。在某些地方我发现了以下代码:

boost::shared_array<uint8_t> array;

是否可以将其替换为:

std::shared_ptr<std::vector<uint8_t>> array;

我正在尝试在我的代码中替换 C++11 中已经存在的所有 boost 功能。

我需要澄清一点。实际上我需要一个原始数组(但有引用计数,所以它可以自动删除),不需要所有那些 vector 特征。所以 boost::shared_array 解决了我想要的问题,没有任何额外的成本。但我试图让我的代码尽可能多地使用新标准(尽管新标准仍未涵盖来自 boost 的许多库)。

谢谢。

最佳答案

鉴于编译器对 C++11 的支持以及人们维护构建的懒惰,我现在将保持原样。 Boost 具有几乎可以在任何地方工作的良好特性,包括旧的编译器,您想要进行的更改几乎不会改进代码。

此代码也不完全相同。

关于c++ - 使用 std::shared_ptr<std::vector> 而不是 boost::shared_array 有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16520722/

相关文章:

java - 将 Borland C++ 代码转换为 Java 代码

c++ - 从 C++ 发送电子邮件

c++ - 如何通过 boost asio 向客户端发送 OpenNI 深度图?

c++ - 在 boost::asio 中超时异步操作的通用方法

c++ - 如何使用 Boost 预处理器扩展字符串

c++ - 如何将 C++ 与 MySQL 连接

c++ - 如何将 C 类型可变参数转换为 C++ 样式可变参数类型?

c++ - MMDevice API 中的 CoCreateInstance 返回错误代码 0x800401F0

c++ - 在不使用 C++11 的情况下在头文件中初始化数组的替代方法

c++ - 我可以合法地使用重载 operator() 的结构作为 std::upper_bound 的比较吗?