Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
三个一维还是一个二维 在我的C和C++程序中,我有三个数组:一个是x坐标,y是坐标,列表是位置。我想知道如果我把这三个放在同一个数组中,会不会占用更少的内存。有什么想法吗?另外,是否只需要定义一个维度,而拥有另一个变量? 谢谢你的帮助。_C++_C_Arrays - Fatal编程技术网

三个一维还是一个二维 在我的C和C++程序中,我有三个数组:一个是x坐标,y是坐标,列表是位置。我想知道如果我把这三个放在同一个数组中,会不会占用更少的内存。有什么想法吗?另外,是否只需要定义一个维度,而拥有另一个变量? 谢谢你的帮助。

三个一维还是一个二维 在我的C和C++程序中,我有三个数组:一个是x坐标,y是坐标,列表是位置。我想知道如果我把这三个放在同一个数组中,会不会占用更少的内存。有什么想法吗?另外,是否只需要定义一个维度,而拥有另一个变量? 谢谢你的帮助。,c++,c,arrays,C++,C,Arrays,这将需要完全相同的内存量;只是会有不同的安排 如果一系列复杂的东西同时出现,那么(可以说,一般来说)拥有这些东西是更好的风格。一个原因是,您不可能意外地拥有不同数量的每个组件。将它们放在一起不太可能占用更少的内存;根据结构布局和对齐方式,可能需要更多时间。但在这种情况下,这是值得怀疑的。最有可能的结果是它们将是相同的 将受到影响的一件事是缓存一致性。如果您通常同时访问所有值,那么将它们放在一起会稍微有效一些。另一方面,如果您通常一次压缩一个数组,那么将它们分开会更有效 另外,如果不是很明显,我建

这将需要完全相同的内存量;只是会有不同的安排

如果一系列复杂的东西同时出现,那么(可以说,一般来说)拥有这些东西是更好的风格。一个原因是,您不可能意外地拥有不同数量的每个组件。

将它们放在一起不太可能占用更少的内存;根据结构布局和对齐方式,可能需要更多时间。但在这种情况下,这是值得怀疑的。最有可能的结果是它们将是相同的

将受到影响的一件事是缓存一致性。如果您通常同时访问所有值,那么将它们放在一起会稍微有效一些。另一方面,如果您通常一次压缩一个数组,那么将它们分开会更有效


另外,如果不是很明显,我建议将值放在结构中,而不是2D数组中。内存布局类似,但语法不同。

多维数组实际上只是一维数组。考虑到这一点,您可能希望使用数据本地化原则(当您访问内存中的数据点时,更容易在其附近加载数据点)

考虑您是一次性访问x,然后访问y,然后访问位置,还是一次性访问x和y以及位置数据。
更多地了解多维数组在内存中的表示方式,以决定如何“分组”数据。

您正在混合术语。你说“列表”是什么意思?你的问题不清楚。您使用的是
c
还是
c++
?为什么使用数组而不是变量?列表是什么意思?数组的数据是从列表形式的文本文件中获取的。我之所以使用数组,是因为可以存储多达100个点。我有C和C++两种程序。我喜欢保持两种语言的新鲜感,所以我通常会制作镜像程序。。。我说的可能很多,尤其是这听起来像是图形。@LightnessRacesinOrbit我最近没有真正测量过,所以我不想夸大它的好处。