草庐IT

c++ - 如何在 C++ 中实现缓存?

假设,我有一个非常大的std::mapFooDB,其中包含Foo内存中的对象,可通过其ID检索。现在可能会有更多Foo对象比有可用内存来存储它们。所以我想要以下结构:检索FooIDx来自FooDB的对象如果对象x在FooDB中,返回如果不是,从高清加载它,尝试将它存储在FooDB中进一步查询有足够的可用内存:将其添加到FooDB内存不足:通过从FooDB中删除来释放一些空间未使用的对象(最早的查询时间戳)我想为FooDB保留一些内存我不知道有多少Foo对象可以存储在其中,因为它们的大小不同。关于如何实现这个的任何想法?编辑我的基本问题是:我怎么知道std::map在内存中的大小?当然,