可跨进程共享的 C++ 容器

标签 c++ boost data-structures stl containers

我真的很想知道是否有任何可以跨多个进程使用的容器(映射、 vector 、列表等)的 STL/boost/自定义等实现。

最佳答案

首先,没有 STL,曾经的 STL 现在只是 C++ 标准库(实际上 仍然是 STL,但大多数人说 STL 是标准库时的意思) .

而且标准库中没有任何东西可以为您提供这种跨进程功能。 这并不是说如果您将它们放入共享内存中,它们就不能跨进程工作,但这并不是真正内置于集合中。

毫无疑问,您可以将数据持久保存到磁盘,但在您似乎指的意义上,这并没有真正在进程之间共享。

Boost 确实给你 interprocess东西,其中包含在 C++ 中找到的集合镜像代码,例如 vector、deque 和 list。

我毫不怀疑在某个地方可能有一些自定义的,但是,在那种交互级别上,大多数人只会选择数据库系统,因为它很容易提供跨进程数据,包含所有有用的东西,例如竞争条件预防等等。

关于可跨进程共享的 C++ 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479709/

相关文章:

c++ - 难以理解 C++ 顺序搜索

c++ - 在执行 boost::asio::async_read 之后操作 streambuf 是否安全?

c++ - C++ 枚举中的最大值和最小值

c++ - 将 boost::signals2::trackable 与 lambda 一起使用

java - java中如何删除链表的最后一个节点?

javascript - JSON 到表格格式并填充空白

c++ - 如何为这种 C++ 结构实现复制运算符?

c++ - 如果 BGL 中的 add_vertex 检查顶点是否存在

c++ - Boost asio ConstBufferSequence - C++ 模板

algorithm - 即使只有一个负权重边,Dijkstra 算法是否适用?