c++ - 在 2 个对象之间共享容器的提示?

标签 c++ stl

我有一些 STL 容器,我需要在 2 种不同类型的对象之间共享 - 比如说 A 和 B。容器在类 A 中定义并在类 B 中用作引用。由于 STL 容器不是线程安全的,我是计划在 A 中定义 boost::mutex 并将其作为引用存储在类 B 中。

这个计划显然失败了,因为我意识到 boost::mutex 是不可复制的。我无法将容器移出 A 类或在容器上提供包装器。你会在这里做什么?

为什么不能复制互斥体?

最佳答案

我不是 100% 确定我可以遵循,但是如果你想在一个类的两个实例之间共享互斥锁以保护共享资源,为什么不直接使用 boost::shared_ptr<boost::mutex>从两个实例访问互斥体?

这应该是您需要共享资源时的通用策略,您也可以考虑使用 boost::shared_ptr对于容器本身,但没有看到您的代码,很难提供一些具体的建议。

关于c++ - 在 2 个对象之间共享容器的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069925/

相关文章:

c++ - 如何在 std::set 中选择随机元素?

c++ - 泄漏的谷歌模拟对象不会失败

C++11 - 从函数传递向量作为迭代器

c++ - boost::interprocess -- std::string 与 std::vector

c++ - Android ndk-r5 调用 std::functions

c++ - 如何实现 vector 重新分配?

c++ - CMake:使用项目安装 boost 组件库的正确方法

c++ - 什么时候应该存储函数的引用或指针?

c++ - 'get_call' 未在此范围内在 C++ 中声明

c++ - 为什么在流中插入会使其宽度重置为 0?