如何獲得std::set
或std::map
的根節點?它提供了獲取begin()
和end()
迭代器的功能,但是我沒有看到有關獲取根文件的任何內容。如何獲取二叉樹(set或map)的根?
0
A
回答
2
你不能那樣做。這就是爲什麼你提供了迭代器 - 將你自己從實現細節中抽象出來。而且,我剛剛在C++ Standard的「tree」關鍵字上完成了Ctrl + F,發現只有5次出現,其中沒有一次與set/map實現細節有關。
如果你需要二叉樹的根 - 創建你自己的數據結構。
1
在這些Abstract Data Types(set
和map
都沒有)中沒有任何根節點的概念。它們實現爲red–black tree的事實僅僅是一個實現細節。
下面是支持的操作:
從維基百科頁面,約ADT的好處之一是:
封裝
抽象提供了一個承諾,即ADT的任何實現都具有某些特性和能力;知道這些是使用ADT對象所需的全部內容。用戶不需要關於實現如何使用ADT的技術知識。這樣,實現可能會很複雜,但實際使用時會被封裝在一個簡單的接口中。
看來你正試圖打破封裝,因爲知道太多的實施。
相關問題
- 1. 如何獲取二叉樹的大小?
- 2. 二叉樹插入根
- 3. 如何二叉樹
- 4. 獲取二叉樹的標籤
- 5. 獲取二叉搜索樹的高度
- 6. 二叉樹 - 哪一種二叉樹
- 7. 二叉樹到二叉搜索樹(BST)
- 8. 如何創建二叉樹(非二叉搜索樹)
- 9. 方案計算二叉樹的根
- 10. 查找二叉樹的根值?
- 11. 僅添加到根的二叉樹
- 12. DrRacket刪除二叉搜索樹的根
- 13. 如何扭轉二叉樹
- 14. 如何建立二叉樹
- 15. 如何製作二叉樹?
- 16. 如何打印二叉樹?
- 17. 如何創建二叉樹
- 18. 二叉搜索樹/採摘根
- 19. 二叉樹中最大的二叉樹搜索樹
- 20. 二叉樹findHeight
- 21. balanced()二叉樹
- 22. 二叉樹
- 23. 二叉樹
- 24. JAVA:二叉樹
- 25. 二叉樹
- 26. 二叉樹
- 27. 非二叉樹
- 28. 二叉樹葉
- 29. Python二叉樹
- 30. 二叉樹值
請編輯您的問題,解釋您爲什麼需要它。你可能不需要它。 –