【问题标题】:Assign value of one iterator into another iterator C++将一个迭代器的值赋给另一个迭代器 C++
【发布时间】:2012-10-23 12:26:29
【问题描述】:

假设我有一个迭代器 it,它指向 map 的某个元素。
另外我还有另一个迭代器it1,我想做这样的事情

it1 = it + 1;  

我们如何在 C++ 中实现这一点,因为上面的语句在 C++ 中给出了错误。

【问题讨论】:

  • 双向迭代器不支持operator+std::next 会这样做。
  • @chris 这是一个答案,不是评论
  • @Dave,出于某种原因,我正在考虑使用两种不同的迭代器类型的可能性,但回头看,这似乎不太可能。

标签: c++ dictionary stl iterator


【解决方案1】:

在 C++11 中,你说auto it1 = std::next(it, 1);

在此之前,您必须说:

std::map<K, T>::iterator it1 = it;
std::advance(it1, 1);

别忘了#include &lt;iterator&gt;

【讨论】:

  • 注意你可以说std::next(it),第二个参数默认为1
猜你喜欢
  • 1970-01-01
  • 2013-06-17
  • 1970-01-01
  • 2015-09-20
  • 2023-03-17
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
相关资源
最近更新 更多