问题标签 [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.
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。
d - 检测 D 中纯函数的非变异调用语句
我相信 D 有可能在其编译器套件中添加另一个很酷的功能,即禁止对纯函数进行非副作用调用的能力。
例如
应该像错误一样
目前 DMD 中的错误为
这样的功能可以防止程序员在期望它具有就地(变异)语义时意外调用非静音算法。这无需使用 GCC 的属性等显式标记__attribute((warn_unused_result))
函数__attribute((const))
。
DMD 的待办事项列表中有这样的功能吗?
ruby - 将空字符串转换为 nil 就地?
我正在寻找一种nil
使用 Ruby 将空字符串转换为适当位置的方法。如果我最终得到一个空格的字符串,我可以这样做
这会给我空字符串""
。
我希望能够做的是这样的事情。
这将用 . 替换空字符串nil
。 to_nil!
将字符串更改为nil
直接,.empty?
否则如果字符串不为空,则不会更改。
这里的关键是我希望它直接发生,而不是通过诸如
algorithm - 线性时间和就地排序
假设 n 条记录的键在 1 到 k 的范围内。
- 编写一个算法,在 O(n+k) 时间内对记录进行排序。
- 您可以在输入数组之外使用 O(k) 存储。
- 你的算法稳定吗?
如果我们使用计数排序,我们可以在 O(n+k) 时间内完成,并且稳定但不到位。
如果 k=2,它可以就地完成,但它不稳定(使用两个变量来维护数组中 k=0 和 k=1 的索引)
但是对于 k>2,我想不出任何好的算法
arrays - 在恒定内存空间中应用排列的算法
我看到这个问题是一本编程面试书,这里我简化了这个问题。
假设您有一个A
长度数组,并且您也有一个长度n
排列数组。您的方法将返回一个数组,其中的元素将按.P
n
A
P
快速示例:您的方法采用A = [a, b, c, d, e]
and P = [4, 3, 2, 0, 1]
。然后它会返回[e, d, c, a, b]
。您只能使用常量空间(即您不能分配另一个占用O(n)
空间的数组)。
想法?
c - 重新排列文件的内容
我正在尝试优化将数据存储在节点中的存档格式。随着时间的推移,容器变得混乱(小的不可用的“空闲”空间节点积累等)。我正在做的类似于碎片整理。我已经有了所有数据位置的列表,以及我希望数据处于其最终状态的位置的表示,但我正在努力将实际数据从其当前配置移动到最佳配置的任务。这些元素的大小不同,也不是任何最小块的倍数(除非您计算字节数)。我忽略了一些明显的方法吗?我什至不确定这个问题被称为搜索算法,我得到的最接近的是就地排序。
到目前为止,我已经尝试过交换数据块,但我需要跟踪节点片段,而且它变得太混乱了,不可行。
我不想诉诸于编写临时副本然后替换,因为文件非常大。
c++ - c++中的就地布尔AND和OR?
沿着这条线,在c ++中是否有类似就地AND和OR运算符的东西?
(我知道我会写someOk=someOk||funcReturningBoolOnSuccess(i)
,但它不那么漂亮)。
python - 在循环内逐列修改numpy数组
有没有办法逐列修改循环内的numpy数组?
我希望这可以通过这样的代码来完成:
我应该使用哪些参数来获取mnX=[[10,23],[12,24]]
?
我知道可以使用以下代码解决该问题:
然而,在 python 中,我们循环遍历修改的对象,而不是索引,所以问题是 - 是否可以直接遍历列(需要就地修改)?
c++ - 就地构造函数 std::vector
我可以创建包含不可复制元素且在 C++11 中没有默认构造函数的向量吗?
例子:
在这里我想创建 10 个值,每个值 ctor 传递整数 7 ...
为什么没有将 C++11 放置构造形式添加到此 std::vector 构造函数中
从coliru粘贴的错误:
bash - (大量)文本处理(在 bash 中)
如何使用 bash 处理一个文件或多个文件?
所以:从文件中读取x
,进行一些处理(例如搜索替换)并写入文件x
。
我知道sed
你可以这样做:sed -i "" "s/original/replacement/g"
,但有时 sed 并没有削减它,我需要一个不同的工具,它缺少一个-i ""
-like 选项。
我最近发现自己可以做到以下几点:
它使用环境变量来存储文件的内容。对于非常大的文件,这可能效率不高,并且环境变量的容量可能受到限制。
有不同的方法吗?
我也阅读了这个答案,但我正在寻找一个 bash 解决方案。以某种方式完全适合该任务的开源工具也受到欢迎。