问题标签 [in-place]

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 投票
6 回答
74999 浏览

list - 如何将元素附加到 Prolog 中的列表中?

如果我在 Prolog 中有一个列表,例如 X = [1, 2, 3, 4],如何将元素 5 添加到列表的末尾以使 X = [1, 2, 3, 4, 5]?

append 函数需要两个列表,即 append(A,B,C) 将 A 和 B 连接到列表 C。

我可以使用临时列表 Y = [1, 2, 3, 4] 和 Z = [5] 来执行此操作,然后执行附加(Y,Z,X),但我不喜欢临时列表。

通常的免责声明在这里适用——这不是家庭作业,我只是在学习 Prolog。

0 投票
2 回答
142 浏览

d - 检测 D 中纯函数的非变异调用语句

我相信 D 有可能在其编译器套件中添加另一个很酷的功能,即禁止对纯函数进行非副作用调用的能力。

例如

应该像错误一样

目前 DMD 中的错误为

这样的功能可以防止程序员在期望它具有就地(变异)语义时意外调用非静音算法。这无需使用 GCC 的属性等显式标记__attribute((warn_unused_result))函数__attribute((const))

DMD 的待办事项列表中有这样的功能吗?

0 投票
4 回答
14914 浏览

ruby - 将空字符串转换为 nil 就地?

我正在寻找一种nil使用 Ruby 将空字符串转换为适当位置的方法。如果我最终得到一个空格的字符串,我可以这样做

这会给我空字符串""

我希望能够做的是这样的事情。

这将用 . 替换空字符串nilto_nil!将字符串更改为nil直接,.empty?否则如果字符串不为空,则不会更改。

这里的关键是我希望它直接发生,而不是通过诸如

0 投票
4 回答
8407 浏览

algorithm - 线性时间和就地排序

假设 n 条记录的键在 1 到 k 的范围内。

  • 编写一个算法,在 O(n+k) 时间内对记录进行排序。
  • 您可以在输入数组之外使用 O(k) 存储。
  • 你的算法稳定吗?

如果我们使用计数排序,我们可以在 O(n+k) 时间内完成,并且稳定但不到位。
如果 k=2,它可以就地完成,但它不稳定(使用两个变量来维护数组中 k=0 和 k=1 的索引)
但是对于 k>2,我想不出任何好的算法

0 投票
9 回答
8354 浏览

arrays - 在恒定内存空间中应用排列的算法

我看到这个问题是一本编程面试书,这里我简化了这个问题。

假设您有一个A长度数组,并且您也有一个长度n排列数组。您的方法将返回一个数组,其中的元素将按.PnAP

快速示例:您的方法采用A = [a, b, c, d, e]and P = [4, 3, 2, 0, 1]。然后它会返回[e, d, c, a, b]。您只能使用常量空间(即您不能分配另一个占用O(n)空间的数组)。

想法?

0 投票
1 回答
52 浏览

c - 重新排列文件的内容

我正在尝试优化将数据存储在节点中的存档格式。随着时间的推移,容器变得混乱(小的不可用的“空闲”空间节点积累等)。我正在做的类似于碎片整理。我已经有了所有数据位置的列表,以及我希望数据处于其最终状态的位置的表示,但我正在努力将实际数据从其当前配置移动到最佳配置的任务。这些元素的大小不同,也不是任何最小块的倍数(除非您计算字节数)。我忽略了一些明显的方法吗?我什至不确定这个问题被称为搜索算法,我得到的最接近的是就地排序。

到目前为止,我已经尝试过交换数据块,但我需要跟踪节点片段,而且它变得太混乱了,不可行。

我不想诉诸于编写临时副本然后替换,因为文件非常大。

0 投票
3 回答
369 浏览

c++ - c++中的就地布尔AND和OR?

沿着这条线,在c ++中是否有类似就地AND和OR运算符的东西?

(我知道我会写someOk=someOk||funcReturningBoolOnSuccess(i),但它不那么漂亮)。

0 投票
1 回答
1612 浏览

python - 在循环内逐列修改numpy数组

有没有办法逐列修改循环内的numpy数组?

我希望这可以通过这样的代码来完成:

我应该使用哪些参数来获取mnX=[[10,23],[12,24]]

我知道可以使用以下代码解决该问题:

然而,在 python 中,我们循环遍历修改的对象,而不是索引,所以问题是 - 是否可以直接遍历列(需要就地修改)?

0 投票
4 回答
827 浏览

c++ - 就地构造函数 std::vector

我可以创建包含不可复制元素且在 C++11 中没有默认构造函数的向量吗?

例子:

在这里我想创建 10 个值,每个值 ctor 传递整数 7 ...

为什么没有将 C++11 放置构造形式添加到此 std::vector 构造函数中

从coliru粘贴的错误:

0 投票
2 回答
80 浏览

bash - (大量)文本处理(在 bash 中)

如何使用 bash 处理一个文件或多个文件?

所以:从文件中读取x,进行一些处理(例如搜索替换)并写入文件x

我知道sed你可以这样做:sed -i "" "s/original/replacement/g",但有时 sed 并没有削减它,我需要一个不同的工具,它缺少一个-i ""-like 选项。

我最近发现自己可以做到以下几点:

它使用环境变量来存储文件的内容。对于非常大的文件,这可能效率不高,并且环境变量的容量可能受到限制。

有不同的方法吗?

我也阅读了这个答案,但我正在寻找一个 bash 解决方案。以某种方式完全适合该任务的开源工具也受到欢迎。