【问题标题】:different types of iterators in cppcpp中不同类型的迭代器
【发布时间】:2019-01-07 05:22:54
【问题描述】:

我们知道在 cpp 中有很多类型的迭代器,比如前向迭代器, 输出迭代器,输入迭代器,随机访问迭代器但是当我们声明时

set<int>::iterator it;
  1. 什么类型的迭代器是上面提到的某种迭代器?

  2. 我从未在程序中使用过上述类型迭代器,我需要知道它们吗?

  3. 通过使用哪些普通类型的迭代器,我们将获得哪些额外的功能? set&lt;int&gt;::iterator it(这种)无法提供的

【问题讨论】:

  • this 的哪一部分没有回答您的问题?
  • 1) set::set&gt;::iterator 既是双向迭代器又是输出迭代器(实际的迭代器类型可以满足多个概念)。 2)如果您不使用特定的迭代器类型,那么可以说您不需要了解它 - 但知识很少会受到伤害,比如您是否需要决定何时使用特定类型迭代器 3)您的第三个问题毫无意义。容器提供了可以明智地迭代自身的迭代器。迭代器的能力取决于对特定容器进行迭代的意义。

标签: c++ stl iterator


【解决方案1】:

set&lt;int&gt;::iterator 的类型为Constant LegacyBidirectionalIterator,您可以在站点std::set 找到它。 对这些迭代器有很好的了解会让你受益,但总的来说我们只需要知道如何使用它。对于迭代器,只要知道它是递减的还是递增的就足够了。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    Q1是什么类型的迭代器,是上面提到的某种迭代器?

    来自https://en.cppreference.com/w/cpp/container/set

    iterator ConstantLegacyBidirectionalIterator
    const_iterator ConstantLegacyBidirectionalIterator

    Q2我从来没有在程序中使用过上面提到的类型迭代器,我需要知道它们吗?

    该类型不是 C++ 类型。这是一个概念。是的,您需要了解它们才能正确使用它们。

    Q3 使用哪些普通类型的迭代器,我们将获得哪些额外的功能? set&lt;int&gt;::iterator it(这种)无法提供的

    由于Q2的答案,问题的答案没有实际意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-22
      • 2020-02-25
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多