为什么集装箱适配器像
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. C++集装箱建筑
- 3. DNN集装箱
- 4. GWT:集装箱
- 5. 集装箱
- 6. 集装箱
- 7. 集装箱
- 8. 集装箱DIV
- 9. createJS - 集装箱
- 10. 码头集装箱关闭脚本
- 11. 如何链接一个码头集装箱与另一个码头集装箱
- 12. 码头集装箱作为两个码头桥之间的网关
- 13. 集装箱全宽
- 14. 集装箱帮助
- 15. 退货集装箱
- 16. 两个码头集装箱之间的沟通
- 17. Flexbox的:集装箱用两个不同的方向
- 18. 如何链接两个码头集装箱?
- 19. 如何将两个码头集装箱连接在一起?
- 20. 共享两个码头集装箱之间的网络端口
- 21. 集装箱用两个索引(或复合索引)
- 22. 的Windows集装箱VS泊坞窗集装箱和Azure的集装箱服务/ Kubernetes集群Linux操作系统
- 23. 码头集装箱VS应用集装箱
- 24. 浮箱集装箱留下来了短
- 25. 3 Div时,一个集装箱,响应
- 26. 码头集装箱连接
- 27. 问题 - 集装箱用Java
- 28. XDummy在码头集装箱
- 29. CSS集装箱定位
- 30. 监控码头集装箱
你应该问问**一个**问题立即 –
回复:** 2。** https://stackoverflow.com/questions/44864338/why-not-implement-contains-function-in-c-containers/44864906#44864906 – Galik
@PserserBy这两个问题密切相关,所以我认为把它们放在一起很好。 – dasblinkenlight