- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找一个允许在磁盘上获取循环缓冲区的库。
在 Boost 中有类似的东西,但它是一个基于内存的容器:circular_buffer .
最佳答案
你可以随意调用它。
您正在寻找内存映射文件。
使用正确的分配器,您可以让容器分配到这个内存映射区域。这将使容器“在磁盘上”。
我直接看看Boost Circularbuffer是否支持这个。
更新是。
最棒的是,这让您完全有可能使用 IPC 同步和线程同步。使用“私有(private)”内存映射,您可以将缓冲区映射为可读写,而无需在某些进程中将更改写回磁盘。
概念验证:
#include <boost/circular_buffer.hpp>
#include <boost/interprocess/allocators/allocator.hpp>
#include <boost/interprocess/managed_mapped_file.hpp>
namespace bip = boost::interprocess;
struct message {
int data[32];
};
int main()
{
bip::managed_mapped_file mmf(bip::open_or_create, "/tmp/circ_buffer.bin", 4ul << 20);
typedef bip::allocator<message, bip::managed_mapped_file::segment_manager> allocator;
boost::circular_buffer<message, allocator> instance(100, mmf.get_segment_manager());
}
¹ 在 Coliru 上,文件大小受到限制是可以理解的。
关于c++ - boost::circular_buffer 相当于文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29258597/
我是cpp的新手。我想把“boost::circular_buffer histpos(5);”用 5 个空格将 5 个元素存储在 cpp 结构中作为成员。 我试试这个: typedef struct
我有 2 个进程:一个生产者和“消费者”,它们仍然在缓冲区中保留值,它们将被覆盖。 但是让消费者跟踪会带来一些问题。当缓冲区已满并且值被覆盖时,指向索引 0 的值是刚被覆盖的值之前的值(即下一个最旧的
我需要在处理到达进程 X 的对象之前对它们进行排序。 对象根据时间戳进行排序 - 一个 64 位数字。 当对象超时(几毫)并排序时,进程 X 开始查看它们。 大多数情况下,对象到达时是有序的,有 3%
我正在寻找一个允许在磁盘上获取循环缓冲区的库。 在 Boost 中有类似的东西,但它是一个基于内存的容器:circular_buffer . 最佳答案 你可以随意调用它。 您正在寻找内存映射文件。 使
以下编译失败: auto myCircularBuffer = boost::circular_buffer{1,2,3,4}; 有错误: `error: no matching function f
我在 MAC (xcode) 中使用 boost 库。我有两个关于 boost::circular_buffer 的问题。 1 - 声明 circular_buffer 时出现语法错误 boost::
是否强制存储std::shared_ptr在 boost::circular_buffer 中?如果我有 boost::circular_buffer循环队列delete是第n+1次插入后自动弹出的元
我正在使用 boost 1.73.0,并尝试将循环缓冲区与 manage_mapped_file 一起使用以将字符串存储在磁盘上持久的循环缓冲区中。 我执行以下操作来创建/打开循环缓冲区: boost
我面临以下情况(我不得不承认我太菜鸟了,不相信自己可以单独解决..):我有线程 A,它偶尔会创建新的 cv::Mat 对象供线程 B 使用。我需要一个线程安全的容器 C(在本例中为 boost::ci
阅读rationale , boost::circular_buffer 看起来很有希望: Suitability for real-time and performance critical app
我正在实现 boost::circular_buffer在boost::managed_shared_memory .我使用示例代码演示共享内存中的 vector here .我做了以下更改: 1)
我发现 Boost 实现了 KMP 算法,我想将它与 circular_buffer 一起使用,但我无法将其与组件相匹配。任何有 boost 经验的人都可以告诉我如何做到这一点。 最佳答案 您遇到了什
我想用 unique_ptrs 填充 boost::circular_buffer 但我在公共(public)接口(interface)中的任何函数中找不到任何“emplace”函数或任何 && 参数
我正尝试在我的代码中使用 boost::circular_buffer,如下所示: class EventRegistry { public: EventRegistry() {
我今天早些时候发现,boost::circular 缓冲区的迭代器在多线程环境中的表现并不像我预期的那样。 (尽管公平地说,它们的行为也与我在单线程程序中的想法不同)。 如果您调用 buffer.be
这段简单的代码将 2 个 bool 添加到循环缓冲区。 boost::circular_buffer stuff; stuff.push_back(false); stuff.push_back(tr
我使用 std::vector 编写了很多代码和 std::vector::iterator .现在我决定用 boost 的循环缓冲区替换 vector 容器,即 boost::circular_bu
我是一名优秀的程序员,十分优秀!