我试着用谷歌搜索它,但没有可靠的答案。有哪些可用的、仍然维护的 C 动态数组实现?他们每个人的优缺点是什么,最好的一个是什么(速度/占地面积比)?只是问问,这样我就不必重新发明轮子了。
问问题
801 次
2 回答
4
GLib中的GArray 可以满足您的需求。
于 2012-12-27T17:17:13.420 回答
2
如果您正在寻找诸如来自 Objective-C 的 NSMutableArray 之类的东西,或者来自 Java 的诸如 ArrayList 之类的东西,您将找不到任何东西(至少是标准 C)。不过,您可以在 C 中创建自己的动态数组实现。它将花费您几行代码,并且实现起来并不难。
所有你需要记住的是时间与记忆。您可以执行一个实现,每次推送/添加一个元素时分配一个更大的新数组,然后在返回或引用中为您弹出它,或者您可以每次重新分配内存。我没有看到两者都有很大的优势,除了 realloc 是一个我认为是低级实现的 C 库函数,这意味着它可能更快,并且在实现方面我会选择 realloc 一个,因为它更快实施。您甚至可以构建一个 api,为您提供排序类型和清理所有方法。
现在由你决定。
希望这可以帮助。
于 2012-12-27T17:22:17.053 回答