2014-10-17 119 views
-1

我對這個術語的含義有一個模糊的含義,通常是在數據結構和算法的情況下,這些數據結構和算法恰好依賴交換變量來繞開容器來傳輸數據,而不是。但我想聽到一些更豐富的定義和細微差別人們的這一術語的知識。我自己做一個鏡頭,我會說做一些適當的事情(有趣的子問題,什麼動詞可以在就地移動?移動就地?在就地轉移?在就地複製?)是將容器數據的元素從一個存儲位置轉移到另一個存儲位置而無需追索到整個容器的第二個副本。術語「inplace」是什麼意思

+0

從我收集的數據來看,它正在對數據進行操作,而不使用比數據佔用的空間更多的空間 – 2014-10-17 23:55:12

+1

http://en.wikipedia.org/wiki/In-place_algorithm? 「一種使用數據結構轉換輸入的算法,該算法具有小而恆定的額外存儲空間,輸入通常會在算法執行時被輸出覆蓋。」 – Ian 2014-10-17 23:56:58

回答

1

「inplace」通常意味着「帶有O(1)個額外空間」。

0

該術語通常用於指示某些操作的替代方法,通常涉及某種複製操作。替代方法可以達到相同的結果,但無論情況如何,都可以避免複製過程或操作。

一個來自C++的例子。在對語言進行C++ 11修訂之前,向容器中添加元素無法避免某種類型的複製操作,如果容器具有非平凡的對象,則該操作可能會變得非常昂貴。

如果要將一個全新的類實例添加到容器中,那麼最終會發生什麼結果是:1)類實例構造,2)複製構造,以及3)破壞第一個例子。

C++ 11添加了某些語言功能,使得避免複製成爲可能,新的類實例最終在容器內部構造「in place」或「emplace」。

相關問題