将一个迭代器的值分配给另一个迭代器 C++

nee*_*eel 6 c++ dictionary iterator stl

假设我有一个it指向map.
我还有另一个迭代器it1,我想做这样的事情

it1 = it + 1;  
Run Code Online (Sandbox Code Playgroud)

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

Ker*_* SB 5

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

在此之前,你必须说这样的话:

std::map<K, T>::iterator it1 = it;
std::advance(it1, 1);
Run Code Online (Sandbox Code Playgroud)

别忘了#include <iterator>

  • 请注意,您可以只说“std::next(it)”,第二个参数默认为 1 (2认同)