什么是“inplace”一词

时间:2014-10-17 23:51:01

标签: terminology

我对这个术语的含义有一种含糊的感觉,通常是在数据结构和算法的背景下,这些数据结构和算法碰巧依赖于交换变量来围绕容器传送数据而不是。但我想听听人们对这个术语的一些更丰富的定义和细微差别。我自己做了一些事情我说要做一些适当的事情(有趣的子问题,什么动词可以在到位之前进行?移动到位?转移到位?复制到位?)是将容器数据的元素从一个存储位置传输到另一个存储位置无需借助整个集装箱的第二份副本。

2 个答案:

答案 0 :(得分:1)

"就地"通常意味着"带有O(1)额外空间"。

答案 1 :(得分:0)

该术语通常用于表示通常涉及某种复制操作的某些操作的替代方法。替代方案可以实现相同的结果,但无论情况如何,都可以避免复制过程或操作。

一个例子来自C ++。在C ++ 11对该语言的修订之前,向容器添加元素无法避免某种类型的复制操作,当容器具有非平凡的对象时,这可能会变得昂贵。

如果要将一个全新的类实例添加到容器中,那么最终发生的事情几乎已成定局:1)类实例构造,2)复制构造,以及3)破坏第一个实例

C ++ 11添加了某些语言功能,可以避免复制,新的类实例最终得到构建"到位"或者#34; emplace"在容器内。

相关问题