问题标签 [arrayaccess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
47 浏览

performance - 访问大型 numpy 数组,同时保留其顺序

我想data通过索引访问一个 numpy 数组idx,但仍然保留data. 下面是一个示例,其中数组的访问顺序与原始数组中的顺序不同。

我希望得到 [2,2.2] 。有没有一种高效的方法来做到这一点?在我的问题设置中,我有超过一百万个浮点数的数据,以及 10 万个整数的 idx。

重要信息:如果需要,可以对数组data进行预处理。数据来自图像处理工作。例如,如果我们需要data预先排序,那么在衡量性能时不会考虑排序所消耗的时间。另一方面,idx我不希望在运行时处理太多,因为必须计算花费在它上面的时间。例如,使用 O(n log n) 算法对 idx 进行排序可能过于昂贵。

0 投票
0 回答
25 浏览

radix-sort - 基数排序中的数组访问

我正在研究基数排序,但我不明白为什么基数排序中的数组访问是11N+4R+1. 以下是用 Java 编写的基数排序代码。

count[a[i]+1]++;等于count[a[i]+1]=count[a[i]+1]+1;。我认为每个count[a[i]+1]都有 2N 个数组访问,所以总数是 4N。如果你看第三个 for 循环,a[i]在两边也是重复的,aux[count[a[i]]++] = a[i]但右边的只是一个数组访问。为什么要count[a[i]+1]++数到 3N?

0 投票
2 回答
116 浏览

c++ - 为什么数组访问和指针算术不等同于完全优化?

为什么这段代码不产生相同的程序集?(g++ -O3) 我对汇编知之甚少,但似乎情况 2 访问的指令较少,所以应该首选,对吧?我问这个是因为我想用一个返回指针的访问运算符实现一个包装类int* p = a[i](所以访问是a[i][j],而不是a[i*3+j]),但不知道它是否值得。感谢您的任何帮助。

https://godbolt.org/z/13arxcPqz

编辑:为了完整起见,这种a向右移动的更改与案例 2 中的完全一样,因为 operator+ 现在与左侧相关联。

https://godbolt.org/z/x89453aK4

0 投票
1 回答
136 浏览

php - php 8.1 - 旧脚本中不推荐使用的返回类型

尝试更新到 php 8.1 并注意到这个已弃用的通知出现在我想要处理的错误日志中。

[14-Feb-2022 14:48:25 UTC] PHP Deprecated: Return type of TLDExtractResult::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/example/public_html/assets/tldextract/tldextract.php on line 299

我能够抑制警告,但实际上想更新脚本,以便将来没有问题。

这是有问题的代码部分:

php 8.1 到底不喜欢这里什么?这比我通常用 php 做的稍微高一点,并且不能完全确定这个问题。听起来像是需要指定特定的返回类型?