• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <iterator>

    std::next

    namespace std {
      template <class ForwardIterator>
      ForwardIterator next(ForwardIterator x,
                           typename std::iterator_traits<ForwardIterator>::difference_type n = 1);  // C++11
    
      template <class InputIterator>
      constexpr InputIterator next(InputIterator x,
                         typename std::iterator_traits<InputIterator>::difference_type n = 1);      // C++17
    }
    

    概要

    n回前方に進めたイテレータを返す。

    advance()と違い、引数として渡されたイテレータへの参照を書き換えるのではなく、n回進んだイテレータのコピーを返す。

    効果

    advance(x, n);
    return x;
    

    戻り値

    引数として渡されたイテレータをn回前方に進めたイテレータのコピー

    #include <iostream>
    #include <iterator>
    #include <vector>
    
    int main()
    {
      std::vector<int> v = {3, 1, 4, 5, 2};
    
      {
        decltype(v)::iterator it = std::next(v.begin()); // イテレータを1回進める
        std::cout << *it << std::endl;
      }
      {
        decltype(v)::iterator it = std::next(v.begin(), 2); // イテレータを2回進める
        std::cout << *it << std::endl;
      }
    }
    

    出力

    1
    4
    

    バージョン

    言語

    • C++11

    処理系

    関連項目

    名前 説明
    prev() n回後方に進めたイテレータを返す
    advance() n回イテレータを進める

    参照