最終更新日時:
が更新

履歴 編集

function
<iterator>

std::basic_const_iterator::operator++(C++23)

constexpr basic_const_iterator& operator++();   // (1) C++23

constexpr void operator++(int);                 // (2) C++23

constexpr basic_const_iterator operator++(int)
  requires forward_iterator<Iterator>;          // (3) C++23
basic_const_iterator operator++(int)
  requires forward_iterator<Iterator> = default; // (3) C++29

概要

イテレータをインクリメントする。

  • (1) : 前置インクリメント
  • (2), (3) : 後置インクリメント

効果

ラップするイテレータをcurrent_というメンバに保持するとして

  • (1) : 以下と等価

    ++current_;
    return *this;
    

  • (2) : ++current_;

  • (3) : 以下と等価

    auto tmp = *this;
    ++*this;
    return tmp;
    

備考

#include <iostream>
#include <vector>
#include <iterator>

int main() {
  std::vector vec = {1, 2, 3, 4, 5};

  std::basic_const_iterator cit = vec.begin();

  ++cit;

  std::cout << *cit << '\n';

  cit++;

  std::cout << *cit << '\n';
}

出力

2
3

バージョン

言語

  • C++23

処理系

参照