gpt4 book ai didi

c - 链表还是顺序内存?

转载 作者:行者123 更新时间:2023-12-04 18:13:31 25 4
gpt4 key购买 nike

我并不是百分百确定如何描述这一点,但我会尽力。我目前正在开发一个项目,其中有一个结构体(称为 set),其中包含指向一组结构体(称为 objs)的指针。要访问这些结构集,必须迭代它们的内存地址(如数组)。主结构体具有其集合中的结构体数量。我就是这样做的

objs = set->objs;

for(n=0; n < set->numObjs; n++)
{
do_something(objs);
objs++;
}

我的问题是,链表会更安全、更快还是更好?结构体数组怎么样?

谢谢。

最佳答案

数组通常按元素遍历和操作要快得多,因为所有数据都连续地位于内存中,因此可以非常有效地使用 CPU 缓存。相比之下,就缓存使用而言,链表或多或少是最差的,因为每个列表节点可能很容易最终出现在内存的完全独立的部分中,并独自占用整个缓存行。

另一方面,链表作为容器更容易操作,因为您可以以非常低的成本插入和删除元素,而您根本无法对数组执行此操作,除非您愿意移动一个元素。周围数组的整个段。

选择吧。

或者更好的是,尝试两者并进行配置。

关于c - 链表还是顺序内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12143814/

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