6
A
回答
6
堆栈或队列有什么重点?一个堆栈的定义是,你只能推入并弹出...迭代器将破坏这些适配器的全部用途
1
我会注意到,这只是一个观察,而不是一个规则。
即,在STL提供的容器适配器不支持迭代中,因为它们限制了接口,以符合特定的模型:
- 甲堆可以仅在一端
- 在被操纵您可能只能在一端推送队列并从另一端检索队列
但是,这不是一个规则,您可能会决定创建支持迭代的适配器。
相关问题
- 1. 迭代器,支持后推
- 2. 如何实现一个支持可变迭代器的容器?
- 3. 迭代器适配器只迭代地图中的值?
- 4. 迭代器是否支持+运算符?
- 5. Processing是否支持迭代器?
- 6. ClearCase SCM适配器支持注释
- 7. 升级适配器是否支持ngModel?
- 8. Ada Os独立适配器迭代
- 9. 输出迭代器适配器进行计数但不复制
- 10. 适配器将任何迭代器转换为随机访问迭代器
- 11. 迭代器和STL容器
- 12. C++容器的迭代器
- 13. 通过迭代器而不是容器
- 14. 使用不带容器的迭代器
- 15. 编译器错误与boost迭代器适配器
- 16. 不一致的STL容器适配器
- 17. 为什么不擦除支持反向迭代器?
- 18. MySQLdb游标不支持空迭代器吗?
- 19. 编译器支持STL容器中的有状态分配器
- 20. C++流迭代器VS容器迭代器
- 21. C++ - 迭代器迭代器不编译
- 22. 模拟器中的Android无线适配器支持
- 23. 在自定义适配器的adapterview错误中不支持addview
- 24. NFC主机,NCI不支持仿真适配器
- 25. 适配器Apns不支持xxxxxxxxxxxxxxxxxxxxxxx令牌的设备
- 26. VirtualBox的:英特尔适配器类型不受支持
- 27. 如何创建容器持有策略类型的容器迭代器?
- 28. 指针迭代器的解引用适配器
- 29. 不维持迭代器的引用?
- 30. STL容器支持Windows Mobile
+1。换句话说,容器迭代器的目的是将容器API限制为栈/队列/任何抽象所需的最小操作。迭代不是最低限度FIFO或LIFO的一部分。如果你想要一个可迭代的队列,它的行为与读取的序列相似,但只能像队列一样进行变异,那么要么使用完整的容器接口(并且选择不要调用'insert',只调用'push_back'),否则使用比std :: queue'更宽的接口编写自己的容器适配器。 –
那么?暴露的操作集仍然是输入和输出迭代器的超集。大量的STL算法都适用于这些算法。例如。 'std :: copy'可以很好地用于推送堆栈上的项目。 – MSalters
@ MSalters:'std :: copy'可以用来用'back_inserter'在堆栈上推送物品。堆栈不需要迭代器。任何需要栈上的迭代器*的操作都将超出LIFO栈的最小定义。如果迭代器暴露了栈操作的严格超集,那意味着最小栈接口公开迭代器是不合适的。 –