爲什麼集裝箱適配器像
std::stack
或std::queue
實現適配器,而不是作爲獨立的容器嗎?是因爲你想要具有不同序列容器的基礎內存管理的堆棧?兩個關於C++集裝箱爲什麼STL的算法是作爲自由函數實現的,這些函數需要迭代器,而不是作爲相應容器的方法?
3
A
回答
5
這樣做是爲了讓程序員更好地控制實現。混搭的能力非常強大,因爲它可以讓你用更少的代碼獲得更多的東西。
爲什麼集裝箱適配器像
std::stack
或std::queue
實現適配器
因爲你可以混合和匹配的容器和適配器:根據您的需求,您可以創建基於vector
一個queue
,或基於list
的stack
,然後通過交換不同類型的容器來更改實現細節。
爲什麼是STL的算法實現爲免費功能
爲了避免在多個地方將它們編碼。例如,向量中的線性搜索在列表中保持相同的線性搜索,並且也可以應用於其他具有迭代器的容器。
請注意,某些容器確實具有特定於其實現的成員函數。例如,std::set
has find
method for faster non-linear search。
+0
謝謝!很好的回答! – mcAngular2
相關問題
- 1. 兩欄佈局 - 集裝箱
- 2. 共享兩個搬運工集裝箱
- 3. C++集裝箱建築
- 4. 用於裝箱的C#GetHashCode
- 5. 集裝箱
- 6. 集裝箱
- 7. 集裝箱
- 8. 集裝箱DIV
- 9. 從集裝箱
- 10. DNN集裝箱
- 11. 集裝箱
- 12. createJS - 集裝箱
- 13. GWT:集裝箱
- 14. HTML CSS箱集裝箱
- 15. 碼頭集裝箱關閉腳本
- 16. 兩個關於用C
- 17. 爲什麼集裝箱內的絕對定位需要集裝箱相對於
- 18. 如何鏈接一個碼頭集裝箱與另一個碼頭集裝箱
- 19. 碼頭集裝箱作爲兩個碼頭橋之間的網關
- 20. C++:任意模板類型集裝箱
- 21. 集裝箱幫助
- 22. 集裝箱鑄造
- 23. 退貨集裝箱
- 24. 集裝箱全寬
- 25. 集裝箱Glassfish的
- 26. ListView項,集裝箱
- 27. 的Windows集裝箱VS泊塢窗集裝箱和Azure的集裝箱服務/ Kubernetes集羣Linux操作系統
- 28. 如何將兩個碼頭集裝箱連接在一起?
- 29. 如何鏈接兩個碼頭集裝箱?
- 30. 暴露兩個端口在谷歌集裝箱引擎
你應該問問**一個**問題立即 –
回覆:** 2。** https://stackoverflow.com/questions/44864338/why-not-implement-contains-function-in-c-containers/44864906#44864906 – Galik
@PserserBy這兩個問題密切相關,所以我認爲把它們放在一起很好。 – dasblinkenlight