gpt4 book ai didi

STL - input_iterator_tag 与 forward_iterator_tag 有何不同?

转载 作者:行者123 更新时间:2023-12-04 14:52:00 25 4
gpt4 key购买 nike

std::input_iterator_tag 与 std::forward_iterator_tag 有何不同?

受有关 C++ 迭代器的 SO 答案的启发。在相同的情况下,这两个标签似乎都适用。

最佳答案

  • 您可以通过前向迭代器设置值。 *iter = foo;在输出迭代器中是合法的,但在输入迭代器中是合法的,而前向迭代器可以读写,除非它是不可变的。
    const SinglelyLinkedList myList = foo();
    // a const container should return immutable iterators
    SomeIterTypedef immutableIter = myList.begin();
  • 输入迭代器可以包装函数的输出。前向迭代器“可用于多遍算法”。除非底层容器发生变化,否则前向迭代器的两个副本应该产生相同的结果。输入迭代器甚至不必与容器相关联……例如 istream_iterator。

  • 我从 the SGI iterators page 中提取了所有这些内容以及特定的输入、输出和转发迭代器页面。

    关于STL - input_iterator_tag 与 forward_iterator_tag 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069635/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com