Questions tagged «arrays»

数组是一种有序的数据结构,由一组元素(值,变量或引用)组成,每个元素由一个或多个索引标识。当询问数组的特定变体时,请使用以下相关标记:[vector],[arraylist],[matrix]。使用此标签时,在特定于编程语言的问题中,使用正在使用的编程语言对问题进行标签。

16
delete []如何知道它是一个数组?
好吧,我想我们都同意,根据所传递的内容,未定义以下代码所发生的情况, void deleteForMe(int* pointer) { delete[] pointer; } 指针可能是各种不同的事物,因此delete[]对它执行无条件的操作是不确定的。但是,假设我们确实在传递数组指针, int main() { int* arr = new int[5]; deleteForMe(arr); return 0; } 我的问题是,在这种情况下,指针是一个数组,谁知道呢?我的意思是,从语言/编译器的角度来看,它不知道arr数组指针还是指向单个int的指针。哎呀,它甚至不知道是否arr是动态创建的。但是,如果我改为执行以下操作, int main() { int* num = new int(1); deleteForMe(num); return 0; } 操作系统足够聪明,只能删除一个int,而不会通过删除超出该点的其余内存来进行某种“杀戮狂潮”(与strlen和非\0终止字符串进行对比),它将一直持续到点击0)。 那么记住这些事情是谁的工作呢?操作系统是否在后台保留某种类型的记录?(我的意思是,我意识到我在开始这篇文章时首先说的是发生的事情是不确定的,但事实是,“杀人狂潮”的情况没有发生,因此在实际世界中有人会记住。)

7
如何将NumPy数组标准化到一定范围内?
在对音频或图像阵列进行一些处理之后,需要先在一定范围内对其进行标准化,然后才能将其写回到文件中。可以这样完成: # Normalize audio channels to between -1.0 and +1.0 audio[:,0] = audio[:,0]/abs(audio[:,0]).max() audio[:,1] = audio[:,1]/abs(audio[:,1]).max() # Normalize image to between 0 and 255 image = image/(image.max()/255.0) 有没有那么繁琐,方便的函数方式来做到这一点?matplotlib.colors.Normalize()似乎无关。


5
在Matlab中,何时最佳使用bsxfun?
我的问题:我注意到,关于SO的Matlab问题的很多很好的答案经常使用该函数bsxfun。为什么? 动机:在Matlab文档中bsxfun,提供了以下示例: A = magic(5); A = bsxfun(@minus, A, mean(A)) 当然,我们可以使用以下方法执行相同的操作: A = A - (ones(size(A, 1), 1) * mean(A)); 实际上,简单的速度测试表明第二种方法的速度提高了约20%。那么为什么要使用第一种方法呢?我猜测在某些情况下使用bsxfun速度会比“手动”方法快得多。我真的很想看到这种情况的示例,并解释为什么它更快。 同样,这个问题的最后一个元素,同样来自Matlab文档,内容为bsxfun:“ C = bsxfun(fun,A,B)将函数句柄fun指定的逐个元素的二进制运算应用于数组A和B,且单例扩展已启用。”。短语“启用单例扩展已启用”是什么意思?
135 arrays  matlab  bsxfun 

17
在对象数组中,查找属性与搜索匹配的对象索引的最快方法
我一直在网上冲浪,试图找到一种有效的方法来做到这一点,但是却一无所获。我有一个看起来像这样的对象数组: array[i].id = some number; array[i].name = some name; 我想做的就是找到id等于例如0、1、2、3或4之一的对象的索引。我想我可以做些类似的事情: var indexes = []; for(i=0; i<array.length; i++) { (array[i].id === 0) ? { indexes[0] = i } (array[i].id === 1) ? { indexes[1] = i } (array[i].id === 2) ? { indexes[2] = i } (array[i].id === 3) ? { …

4
Ruby Array find_first对象?
我在数组文档中缺少什么吗?我有一个数组,其中包含最多一个满足特定条件的对象。我想有效地找到那个对象。我从文档中得到的最好的主意是: candidates = my_array.select { |e| e.satisfies_condition? } found_it = candidates.first if !candidates.empty? 但是我不满意有两个原因: select即使我可以在第一次命中后保释,这也使我遍历了整个数组。 我需要一行代码(有条件)来压平候选人。 事先知道存在0或1个令人满意的对象,这两个操作都是浪费的。 我想要的是这样的: array.find_first(block) 它返回nil或该块对其求值为真的第一个对象,从而在该对象处结束遍历。 我必须自己写这个吗?Array中所有其他出色的方法都使我认为它在那里,而我只是没有看到它。
135 ruby  arrays  performance  find 


3
这段代码如何在不使用sizeof()的情况下确定数组大小?
通过一些C面试问题,我找到了一个问题,指出“如何在不使用sizeof运算符的情况下在C中查找数组的大小?”,并提供以下解决方案。它有效,但是我不明白为什么。 #include <stdio.h> int main() { int a[] = {100, 200, 300, 400, 500}; int size = 0; size = *(&a + 1) - a; printf("%d\n", size); return 0; } 如预期的那样,它返回5。 编辑:人们指出了这个答案,但是语法确实有所不同,即索引方法 size = (&arr)[1] - arr; 因此,我认为这两个问题都是有效的,并且对问题的处理方法略有不同。谢谢大家的大力帮助和详尽的解释!

8
数组,堆和堆栈以及值类型
int[] myIntegers; myIntegers = new int[100]; 在上面的代码中,是否是new int [100]在堆上生成数组?根据我通过c#进行的CLR阅读,答案是肯定的。但是我不明白的是,数组内部的实际int发生了什么。因为它们是值类型,所以我想必须将它们装箱,例如,我可以将myIntegers传递给程序的其他部分,如果一直将它们留在程序中,则会使堆栈混乱。还是我错了?我猜想它们会被装箱,并且只要数组存在就可以在堆中生存。
134 c#  arrays  memory  stack  heap 

12
[] .forEach.call()在JavaScript中做什么?
我看着一些代码片段,发现多个元素在节点列表上调用了一个函数,并将forEach应用于空数组。 例如,我有类似的东西: [].forEach.call( document.querySelectorAll('a'), function(el) { // whatever with the current node }); 但我不明白它是如何工作的。谁能解释一下forEach前面的空数组的行为以及其call工作原理?

5
PHP中FOR与FOREACH的性能
首先,我了解90%的应用程序中的性能差异完全无关紧要,但是我只需要知道哪个是更快的构造即可。那... 当前网上可用的信息令人困惑。许多人都说foreach不好,但是从技术上讲应该更快,因为它假设可以简化使用迭代器编写数组遍历的过程。再次被认为是更快的迭代器,但是在PHP中显然也很慢(或者这不是PHP吗?)。我说的是数组函数:next()prev()reset()等,如果它们甚至是函数,而不是那些看起来像函数的PHP语言功能之一。 稍微缩小一点:我对以大于1的步长遍历数组并不感兴趣(也没有负步长,即反向迭代)。我对遍历任意点(长度仅为0)也不感兴趣。我也看不到有规则地操纵具有1000个以上键的数组,但是我确实看到一个数组在应用程序的逻辑中被遍历了多次!此外,对于操作,主要仅是字符串操作和回显。 以下是一些参考站点: http : //www.phpbench.com/ http://www.php.lt/benchmark/phpbench.php 我到处都能听到: foreach慢,因此for/ while快 PHP foreach复制它迭代的数组;为了更快,您需要使用参考 像这样的代码:比$key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++)foreach 这是我的问题。我写了这个测试脚本:http : //pastebin.com/1ZgK07US,无论我运行脚本多少次,我都会得到如下信息: foreach 1.1438131332397 foreach (using reference) 1.2919359207153 for 1.4262869358063 foreach (hash table) 1.5696921348572 for (hash table) 2.4778981208801 简而言之: foreach比foreach参考更快 foreach 比 for foreach比for散列表快 …

29
从JavaScript中的平面数组构建树数组
我有一个复杂的json文件,必须使用javascript处理才能使其具有层次结构,以便稍后构建树。json的每个条目都具有:id:唯一ID,parentId:父节点的id(如果节点是树的根,则为0)level:树中的深度级别 json数据已被“排序”。我的意思是,条目上方将具有父节点或兄弟节点,而其下将具有子节点或兄弟节点。 输入: { "People": [ { "id": "12", "parentId": "0", "text": "Man", "level": "1", "children": null }, { "id": "6", "parentId": "12", "text": "Boy", "level": "2", "children": null }, { "id": "7", "parentId": "12", "text": "Other", "level": "2", "children": null }, { "id": "9", "parentId": "0", "text": "Woman", "level": …
134 javascript  arrays  list  tree 


11
将Swift字符串转换为数组
如何在Swift中将字符串“ Hello”转换为数组[“ H”,“ e”,“ l”,“ l”,“ o”]? 在Objective-C中,我使用了以下方法: NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]]; for (int i=0; i < [myString length]; i++) { NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]]; [characters addObject:ichar]; }
133 ios  arrays  swift  string 

6
如何在Java中初始化长度为0的String数组?
该方法的Java文档 String[] java.io.File.list(FilenameFilter filter) 包含在返回说明中: 如果目录为空或过滤器未接受任何名称,则该数组为空。 我如何做类似的事情,并将String数组(或与此相关的任何其他数组)初始化为长度为0?

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.