我在c ++标准库中使用了一个列表,我想知道如何使用迭代器获取第二个元素。我有两个迭代器,我希望迭代器2提前1个节点。
intPaint(string input){
list<char>sequence (input.begin,input.end);
int count;
list<char>::iterator ptr1= sequence.begin();
list<char>::iterator ptr2= ?// I want to get the second node
...//rest of the code isn't important it just checks the characters and moves
//the iterator
}
答案 0 :(得分:2)
如果你确实在使用C ++ 11,那么std::next()
应该可以做到这一点:
list<char>::iterator ptr1 = sequence.begin();
list<char>::iterator ptr2 = std::next(sequence.begin())
template <class ForwardIterator>
ForwardIterator next(ForwardIterator it,
typename iterator_traits<ForwardIterator>::difference_type n = 1);
获取下一个元素的迭代器。返回指向的迭代器 如果是高级的n个位置,它将指向的元素。