mcA*_*ar2 3 c++ queue stack containers adapter
为什么容器适配器喜欢std::stack或std::queue实现为适配器而不是独立容器?是因为你想要一个具有不同序列容器的底层内存管理的堆栈?
为什么STL的算法实现为自由函数,它们期望迭代器,而不是相应容器的方法?
这样做是为了让程序员更好地控制实现.混合和匹配的能力非常强大,因为它可以让您用更少的代码实现更多的东西.
为什么容器适配器喜欢
std::stack或std::queue实现为适配器
因为您可以混合使用容器和适配器:根据您的需要,您可以创建queue基于a vector或stack基于a的list,然后通过交换不同类型的容器来更改实现细节.
为什么STL的算法实现为自由函数
避免在多个地方编码.例如,向量中的线性搜索在列表中保持相同的线性搜索,也可以应用于具有迭代器的其他容器.
请注意,某些容器确实具有特定于其实现的成员函数.例如,std::set具有find更快的非线性搜索的方法.