gpt4 book ai didi

c++ - 四叉树的核心实现

转载 作者:行者123 更新时间:2023-11-28 08:29:51 24 4
gpt4 key购买 nike

我正在尝试在辅助内存(硬盘)上构建一个四叉树数据结构(或者我们就说一棵树)。

我有一个 C++ 程序可以这样做,我使用 fopen 来创建文件。此外,我使用 tesseral 编码将每个单元格存储在一个以其相应代码命名的文件中,以将其存储在磁盘上的一个目录中。

问题是在创建了大约 1,100 个文件后,fopen 只返回 NULL 并停止创建新文件。我可以在该目录中手动创建更多文件,但使用 C++ 无法创建任何其他文件。

我知道 ext3 文件系统上 inode 的最大限制是(来自维基百科)32,000,但我的限制远小于此,还要注意我可以在磁盘上手动创建文件;只是不通过 fopen。

此外,我非常感谢任何有关在磁盘上存储非常动态的四叉树的最佳方法的想法(我需要将节点放在单独的文件中并且四叉树的深度可能为 50)。

使用嵌套目录是一种想法,但我认为这会降低性能,因为要按照文件系统上的链接访问文件。

谢谢,尼玛

最佳答案

失败的 fopen() 调用的 errno 值是多少?

您是否将创建的文件保持打开状态?如果是,您很可能超出了每个进程打开文件的最大数量。

关于c++ - 四叉树的核心实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2648086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com