0

我想使用 C++ 代码将一些文件保存在特定文件夹 (/tmp/) 中。存储文件之前

  1. 我需要检查是否有足够的内存可用。如果没有,我需要从存储中删除最旧的文件,然后我需要存储一个新文件。
  2. 我还需要知道代码中存储的文件详细信息才能访问它们。

我的实现是:

std::map<string IfileName, int iDetail>

我创建了一个 Map 实例,每当我创建文件数据时,我都会将详细信息存储在地图中。地图的问题是:

  1. 地图自动对文件名进行排序。所以我无法识别最旧的文件。
  2. 假设,文件在存储中被删除,那么 map 也有关于该文件的详细信息。
4

2 回答 2

0

首先,您的问题尝试在这里阅读。关于你问题的第二部分。为什么你不想使用成对向量。在这种情况下,您可以使用 push_back。

于 2012-05-09T09:32:41.343 回答
0

在某些时候,我使用 map 和 deque 的组合来解决类似的问题。诀窍是每个 value_type(在 map 和 deque 中)都需要使用交叉指针进行扩展。因此,当您使用某个键运行 map.find() 时,您收到的值具有指向双端队列中元素的指针。反之亦然。要找到最旧的 (LRU) 文件,您只需执行 deque.pop_back(),取消引用您进入地图的指针,查看详细信息并决定是否需要再删除一个文件。

于 2012-05-10T08:25:53.283 回答