如何获取标准列表中的第二个元素

时间:2015-10-26 20:50:16

标签: c++ c++11

我在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
}

1 个答案:

答案 0 :(得分:2)

如果你确实在使用C ++ 11,那么std::next()应该可以做到这一点:

list<char>::iterator ptr1 = sequence.begin();
list<char>::iterator ptr2 = std::next(sequence.begin())

来自documentation

template <class ForwardIterator>
ForwardIterator next(ForwardIterator it,
                     typename iterator_traits<ForwardIterator>::difference_type n = 1);
  

获取下一个元素的迭代器。返回指向的迭代器   如果是高级的n个位置,它将指向的元素。