何时使用迭代器合适
When is using an iterator appropriate?
我目前正在上一门关于数据结构的课程(用 c++),今天我们简要地介绍了迭代器。 教授并没有真正理解它,虽然我对迭代器的作用有了基本的了解,但我想知道是否有人可以扩展这个主题,可能会给出一个使用它们的利/弊列表,而不是最好在 c++ 中,但一般大纲也可以。
提前感谢所有回复:)的人。
使用迭代器可以维护对象数据的受保护状态。例如,您可能会循环访问列表。返回的迭代器可能允许您单步执行列表元素(节点),而无需直接修改列表。不过,这取决于实现。您可以轻松编写自己的迭代器,允许直接修改列表向量。这只是另一种形式的便利抽象。
迭代器作为接口(纯抽象)可用于提供一个通用接口来迭代不同类型的列表或数组,就像在 Java、C# 等中一样。
相关文章:
- 修改 std::vector 会使迭代器无效吗?
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- 矢量迭代器在尝试调用函数时使我的程序崩溃
- std::vector::erase() 真的会在擦除时使迭代器失效吗?
- 如何使equal_range迭代器在 Boost 多索引中按不同的索引排序?
- 如何实现构造函数,使其仅接受使用 typeid 的输入迭代器?
- 为什么输入迭代器在递增后会使自身失效?
- 我可以在 std::list 中移动元素而不会使迭代器或引用无效,但是如何移动呢?
- 何时返回矢量迭代器而不是矢量?
- C++ std::map 和 std::set 擦除复制值,从而使迭代器失效
- 如何避免使用“ReplaceInstWithValue()”使迭代器无效
- std :: move()会使迭代器无效
- C 与查找功能一起使用时,迭代器为什么行为会有所不同
- 赋值(运算符 =)使容器的迭代器失效
- 如何通过引用迭代器的解引用使幂等性
- 递增可变输入迭代器是否会使旧迭代器值失效
- 有人能解释一下他们的意思是list.pushback文档(不会使迭代器无效)吗
- 不会使迭代器(和指针)无效的容器
- C++ std::迭代器何时以及如何使用value_type、引用、指针
- 编写一个迭代器,使多个容器看起来像一个容器