有誰知道C++數據結構庫提供熟悉的STL結構的功能性(a.k.a.不可變,或FP意義上的「持久性」)等價物嗎? 「功能」我的意思是對象本身是不可變的,而對這些對象的修改返回與適當的父對象共享內部相同內部的新對象。理想情況下,這樣的庫類似於STL,並且可以和Boost.Phoenix一起工作(警告 - 我沒有真正使用Phoenix,但據我所知它提供了很多算法,但沒有數據結構,除非懶惰計算的變化到現有的數據結構計數 - 是嗎?)C++中的函數式數據結構
21
A
回答
3
1
這不僅僅是一個詳細的答案,而且Bartosz Milewski似乎在這方面做了很多工作。參見,例如:
http://bartoszmilewski.com/2013/11/13/functional-data-structures-in-c-lists/
看起來像他在這裏實現了很多的算法從Okasiki的書純功能性數據結構:
https://github.com/BartoszMilewski/Okasaki
注:我還沒有嘗試過,但它們是我在FC++之外看到的第一個C++持久數據結構。
希望我會盡快嘗試。
+0
他們似乎缺少重要的部分......就像刪除 – Michael 2014-10-23 03:10:43
相關問題
- 1. 結構中的函數? C++
- 2. C++中的數據結構
- 3. Clojure數據結構函數
- 4. C數據結構
- 5. 函數返回結構(C)
- 6. C++:結構中的成員函數
- 7. haskell中的CPU仿真,函數式數據結構和拉鍊?
- 8. 函數式編程中的大型數據結構
- 9. 具有數據結構指針參數的C函數
- 10. 使用函數指針結構的C中的包裝函數
- 11. ANSI C中樹數據結構C
- 12. C#結構中的無參數構造函數6
- 13. 在C++構造函數中分配結構數組的存儲
- 14. C++函數參數和結構錯誤
- 15. C++ - 結構...函數參數問題
- 16. C#中的動態數據結構
- 17. C中的標準數據結構庫?
- 18. C#中的老化數據結構
- 19. C++中的遞歸數據結構
- 20. C++中的地圖數據結構
- 21. asp.net/c#中的數據結構問題#
- 22. C#中的多維數據結構#
- 23. DOM中的數據結構像ANSI C
- 24. Objective C中的樹數據結構
- 25. C++數據結構堆
- 26. 特里數據結構C
- 27. C數據結構錯誤
- 28. C++數據結構聲明
- 29. C數據結構庫
- 30. C++數據結構大O
您是否可以通過按值傳遞和返回所有對象來大致獲得所需的效果? – 2010-05-03 10:09:28
只有我能承受性能和內存開銷。功能數據結構的訣竅是它們儘可能共享內部。這是安全的,因爲對象是不可變的,並且比僅僅在大數據結構上返回值要少得多的內存和處理器。 – drg 2010-05-03 10:14:54
我在http://portal.acm.org/citation.cfm?id=1596591共同撰寫經驗報告時,對同一個問題產生了真正的興趣。我當時的結論是,你真的需要垃圾收集:持久結構的優勢在於共享,但是在共享的存在下,不再有任何單一節點的明確所有權,因此某種中央當局(GC)必須決定哪些節點可以回收。對於您的應用程序來說,節點只被分配並且永遠不會被釋放並不重要。 – 2010-05-03 10:28:38