【问题标题】:Iterators and arrays迭代器和数组
【发布时间】:2017-07-03 06:02:10
【问题描述】:

假设我在一个类中有一个数组,我必须为该类编写一个成员函数,根据传入的迭代器在数组中间放置一个新值。

例如:

void insert(iterator itr, int value)

如果允许我使用整数进行索引,那么我可以这样做:

array[i] = value;

有没有办法用迭代器做同样的事情?

【问题讨论】:

  • 您想让insert 做与数组示例或标准库做的等效的操作吗?
  • 数组示例的作用
  • *itr = value; 怎么样?

标签: c++ arrays iterator


【解决方案1】:

标准 c++ 容器类的 insert() 操作意味着容器的大小将被更改,而索引运算符依赖于现有的索引,或者为 std::setstd::map 类似容器类创建一个新的索引.

因此,这些操作通常无法比较(相同)。

如果我被允许使用整数进行索引

迭代器是一个抽象概念,其实现可能比将其转换为用作连续数组索引的整数值更复杂。

【讨论】:

    【解决方案2】:

    您只需将 i 添加到迭代器即可。它们的行为就像指针一样,对此question 给出了更清晰的解释

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2010-11-20
      • 2016-11-26
      相关资源
      最近更新 更多