2012-11-02 87 views
2

假設我有一個迭代器it,它指向某個元素map
我也有另一種迭代it1,我想要做這樣的事情將一個迭代器的值賦給另一個迭代器C++

it1 = it + 1; 

我們怎樣才能在C++中實現這一++如上語句C給出錯誤++。

+2

雙向迭代器不支持'operator +'。 'std :: next'會這樣做。 – chris

+2

@chris這不是一個評論 – David

+0

@Dave,出於某種原因,我正在考慮使用兩種不同迭代器類型的可能性,但回頭看,這似乎不大可能。 – chris

回答

3

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

在此之前,你要這樣說:

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

不要忘記#include <iterator>

+1

注意你可以只說'std :: next(it)',第二個參數默認爲1 – David