Questions tagged «array»

数组是类似对象的系统排列,通常按行和列排列。

30
为什么从零开始的数组是常态?
这里提出的一个问题使我想起了我与一位程序员的讨论。他认为,从零开始的数组应该替换为从一开始的数组,因为从零开始的数组是一个实现细节,它起源于数组和指针以及计算机硬件的工作方式,但是这些东西不应在更高层次上反映出来。语言。 现在我不是很擅长辩论,所以除了提供感觉更合适之外,我无法提供任何充分的理由坚持使用从零开始的数组。为什么是零的共同出发点阵列?
112 array 

3
我如何摆脱“循环”思想流派?
这是一个相当概念性的问题,但是我希望我能对此得到一些好的建议。我做的很多编程工作都是使用(NumPy)数组。我经常必须匹配大小不同的两个或多个数组中的项,而我要去的第一件事是一个for循环,甚至更糟的是嵌套的for循环。我想尽可能避免for循环,因为它们很慢(至少在Python中如此)。 我知道NumPy的很多功能都需要我研究一些预定义的命令,但是当您必须迭代某些内容时,您(作为经验丰富的程序员)是否会想到一个一般的思考过程? 所以我经常有这样的事情,这很糟糕,我想避免它: small_array = np.array(["one", "two"]) big_array = np.array(["one", "two", "three", "one"]) for i in range(len(small_array)): for p in range(len(big_array)): if small_array[i] == big_array[p]: print "This item is matched: ", small_array[i] 我知道有多种方法可以实现这一目标,但是我对通用的思维方法(如果存在)感兴趣。
79 python  array  loops 

6
用字符串字面量来初始化char []是不好的做法吗?
我在CodeGuru上读了一个标题为“ strlen vs sizeof”的线程,其中一个答复指出“ char用字符串文字初始化数组仍然是[sic]不好的做法”。 这是真的吗?还是他的观点(尽管是“精英成员”)? 这是原始问题: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } 对。大小应为长度加1是? 这是输出 the size of september is 8 and the length is 9 大小一定是10。就像在计算strcpy改变字符串长度之前计算它的sizeof字符串一样。 我的语法有问题吗? …

5
C#List <>中的.Any()有什么用?
我一直在与同事讨论这个问题,我们无法弄清楚C#中.Any任何给定的用途是什么List&lt;&gt;。 您可以像下面的语句那样检查数组中元素的有效性: if (MyList.Any()){ ...} //Returns true or false 完全一样 if (MyList.Count() != 0) { ... } 并且更加常见,易读并且清楚if声明的意图。 最后,我们陷入了这种想法: .Any() 可以使用,但效果也一样,但是对程序员的意图尚不清楚,因此不应该使用它。 但是我们觉得这是不对的。我们一定缺少一些东西。 是吗
40 c#  array  list 

2
PHP:什么时候使用数组,什么时候将对象用于大多数数据存储的代码构造?
PHP是一种混合范式语言,允许使用和返回非对象数据类型,例如数组。我提出一个问题,试图在确定在特定情况下使用哪种编程构造时,阐明一些选择数组还是对象的准则。 这实际上是一个有关使用PHP语言构造对数据进行编码的方法以及何时更可能为了数据传递目的而选择另一种方法(即面向服务的体系结构或Web服务)的问题。 例 假设您的商品类型由{cost,name,part_number,item_count}组成。您的程序要求显示几种此类项目,并决定使用数组作为外部容器来保存每种项目类型。[您也可以使用PHP的ArrayObjectOO范例,但是我的问题不是关于那个(外部)数组的]。我的问题是关于如何对项目类型数据进行编码,以及使用哪种范式。PHP允许您使用PHP Native Arrays或PHP Objects。 我可以通过两种方式对此类数据进行编码,如下所示: //PHP's associative arrays: $ret = array( 0 =&gt; array( 'cost' =&gt; 10.00, 'name' =&gt; 'item1', 'part_number' =&gt; 'zyz-100', 'item_count' =&gt; 15 ), 1 =&gt; array( 'cost' =&gt; 34.00, 'name' =&gt; 'item2', 'part_number' =&gt; 'abc-230', 'item_count' =&gt; 42 ), ); 与 //here ItemType …

11
“第四维”如何与数组一起使用?
抽象: 因此,据我了解(尽管我了解的非常有限),我们(通常)在物理上涉及三个方面: 第一个将由一条线表示。 第二个将由一个正方形表示。 第三个将由一个多维数据集表示。 很简单,直到我们进入第四位 -如果您知道我的意思,那么很难在3D空间中绘制...有些人说这与时间有关。 问题: 现在,尽管这并没有多大意义,但对我来说,这一切都很棒。我的问题不是这个,或者我会在MathSO或PhysicsSO上问它。我的问题是:计算机如何处理数组? 我知道您可以使用许多不同的编程语言创建4D,5D,6D等数组,但是我想知道它是如何工作的。
30 theory  array 

3
我应该使用列表还是数组?
我正在Windows窗体上计算项目编号的UPC。 我成功创建了一个可一次处理一个物料编号/ UPC的物料,现在我想扩展并针对多个物料编号/ UPC进行处理。 我已经开始尝试使用列表,但是我一直陷于困境。我创建了一个帮助器类: public class Codes { private string incrementedNumber; private string checkDigit; private string wholeNumber; private string wholeCodeNumber; private string itemNumber; public Codes(string itemNumber, string incrementedNumber, string checkDigit, string wholeNumber, string wholeCodeNumber) { this.incrementedNumber = incrementedNumber; this.checkDigit = checkDigit; this.wholeNumber = wholeNumber; this.wholeCodeNumber = wholeCodeNumber; this.itemNumber = …
22 c#  array  winforms  list 

3
在不填满巨大数组的情况下产生大问题的专业方法:C ++,从数组的一部分释放内存
我正在开发物理模拟,由于我对编程还不熟悉,因此在生成大型程序时会遇到很多问题(主要是内存问题)。我知道动态内存分配和删除(新建/删除等),但是我需要一种更好的方法来构造程序。 假设我正在模拟一个实验,该实验运行了几天,并且采样率非常高。我需要模拟十亿个样本,然后运行它们。 作为一个超级简化的版本,我们将说一个程序采用电压V [i],并将它们加在一起为5: 即NewV [0] = V [0] + V [1] + V [2] + V [3] + V [4] 然后NewV [1] = V [1] + V [2] + V [3] + V [4] + V [5] 然后NewV [2] = V [2] + V [3] + V [4] + …
20 c++  data  memory  array  dynamic 

3
如何在关系数据库中存储订购的信息
我正在尝试了解如何在关系数据库中正确存储有序信息。 一个例子: 假设我有一个由歌曲组成的播放列表。在我的关系数据库中,我有一个的表Playlists,其中包含一些元数据(名称,创建者等)。我还有一个名为的表Songs,其中包含playlist_id和特定于歌曲的信息(名称,艺术家,时长等)。 默认情况下,将新歌曲添加到播放列表时,它将添加到末尾。按Song-ID(升序)订购时,该顺序将为添加顺序。但是,如果用户应该能够对播放列表中的歌曲重新排序,该怎么办? 我提出了一些想法,每个想法都有其优点和缺点: 称为的列order,它是整数。移动歌曲时,所有歌曲在其旧位置和新位置之间的顺序都会更改,以反映更改。这样做的缺点是,每次移动歌曲时都需要进行很多查询,并且移动算法不像其他选项那样琐碎。 称为的列order,它是一个十进制(NUMERIC)。移动歌曲时,会为其分配两个相邻数字之间的浮点值。缺点:十进制字段会占用更多空间,并且可能会精度不够,除非在每次更改后都注意重新分配范围。 另一种方法是使用previous和next字段引用其他歌曲。(或者,如果现在是播放列表中的第一首和最后一首歌曲,则为NULL;基本上,您将创建一个链表)。缺点:诸如“在列表中找到第X首歌曲”之类的查询不再是固定时间,而是线性时间。 在实践中最常使用以下哪个程序?在大中型数据库上,以下哪个过程最快?还有其他方法可以存档吗? 编辑:为简单起见,在此示例中,一首歌曲仅属于一个播放列表(多对一关系)。当然,也可以使用Junction Table,因此song⟷playlist是一个多对多关系(并在该表上应用上述策略之一)。

4
size_t或int用于尺寸,索引等
在C ++中,size_t(或更正确地说T::size_type,通常是“ 类型” size_t;即unsigned类型)被用作的返回值size(),的自变量operator[]等(请参见std::vector等)。 另一方面,.NET语言出于相同目的使用int(并且(可选long))。实际上,不需要 CLS兼容语言来支持unsigned类型。 由于.NET是比C ++新的东西告诉我,可能会有问题,使用unsigned int连供的事情,“不可能”像数组索引或长度为负。C ++的方法是否“向后兼容”?还是这两种方法之间存在真实而重大的设计折衷? 为什么这么重要?好吧……对于C ++中的新多维类,我应该使用什么?size_t还是int? struct Foo final // e.g., image, matrix, etc. { typedef int32_t /* or int64_t*/ dimension_type; // *OR* always "size_t" ? typedef size_t size_type; // c.f., std::vector&lt;&gt; dimension_type bar_; // maybe rows, or x dimension_type baz_; // e.g., columns, …
15 c#  c++  array 


6
为什么C数组的长度不能为0?
C11标准说,大小和可变长度的数组“都应具有大于零的值”。不允许长度为0的理由是什么? 特别是对于可变长度的数组,每隔一段时间具有零的大小是很有意义的。当静态数组的大小来自宏或构建配置选项时,它也很有用。 有趣的是,GCC(和clang)提供了允许零长度数组的扩展。Java还允许长度为零的数组。
13 c  array 

2
使用方括号作为数组元素的习惯是如何发展的?
许多编程语言都使用该语法a[i]来引用i数组,序列或向量的'th元素a-特别是C和Pascal(从1960年代末至1970年代初)。另一方面,某些较早的语言(例如Fortran(1950年代))不使用此约定。另外,我学习了一些数学,数学家使用方括号作为间隔,下标用于数组和矩阵的下标(如果将数组视为非负整数的函数,则使用正则括号)。 因此,我的问题是:用于数组下标的方括号在哪里/如何/在什么情况下发展?由谁开发? 注意:这个问题完全不是关于在C中使用大括号的问题。
11 history  array  syntax 

8
数组和堆栈有什么区别?
根据维基百科,一个堆栈: 是后进先出(LIFO)抽象数据类型和线性数据结构。 而数组: 是由一组元素(值或变量)组成的数据结构,每个元素均由至少一个数组索引或键标识。 据我了解,它们相当相似。那么,主要区别是什么?如果它们不相同,那么数组不能做什么,而栈不能做什么呢?

6
从未排序数组的范围中检索最大值
我有一个未排序的数组。我在查询中给出一个范围,然后必须返回该范围的最大值。例如: array[]={23,17,9,45,78,2,4,6,90,1}; query(both inclusive): 2 6 answer: 78 我构造了哪种算法或数据结构来快速检索任何范围内的最大值。(有很多查询) 编辑: 这确实是实际问题的简单版本。我可以将数组的大小设置为最大100000,查询数量最多为100000。因此,我绝对需要进行一些预处理,以利于快速查询响应。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.