容器适配器不支持迭代器

XMa*_*all 6 c++ stl

在关于STL的一篇C++文章中,有人说 -

由于容器适配器不支持迭代器,因此它们不能与STL算法一起使用.

但它没有解释为什么容器适配器不支持迭代器?任何人都可以解释我一样吗?

Arm*_*yan 6

堆栈或具有迭代器的队列有什么意义?根据定义,堆栈只能推送和弹出...迭代器会破坏这些适配器的整个目的

  • +1.换句话说,容器迭代器的目的是将容器API限制为堆栈/队列/任何抽象所需的最小操作.迭代不是最低FIFO或LIFO的一部分.如果你想要一个可迭代队列,它的行为类似于一个读取序列,但只能像队列一样进行变异,那么要么使用完整的容器接口(并且选择不要调用`insert`,只调用`push_back`),否则使用比`std :: queue`更宽的接口编写自己的容器适配器. (2认同)