2
假設我有一個迭代器it
,它指向某個元素map
。
我也有另一種迭代it1
,我想要做這樣的事情將一個迭代器的值賦給另一個迭代器C++
it1 = it + 1;
我們怎樣才能在C++中實現這一++如上語句C給出錯誤++。
假設我有一個迭代器it
,它指向某個元素map
。
我也有另一種迭代it1
,我想要做這樣的事情將一個迭代器的值賦給另一個迭代器C++
it1 = it + 1;
我們怎樣才能在C++中實現這一++如上語句C給出錯誤++。
在C++ 11中,您說auto it1 = std::next(it, 1);
。
在此之前,你要這樣說:
std::map<K, T>::iterator it1 = it;
std::advance(it1, 1);
不要忘記#include <iterator>
。
注意你可以只說'std :: next(it)',第二個參數默認爲1 – David
雙向迭代器不支持'operator +'。 'std :: next'會這樣做。 – chris
@chris這不是一個評論 – David
@Dave,出於某種原因,我正在考慮使用兩種不同迭代器類型的可能性,但回頭看,這似乎不大可能。 – chris