Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 1.47 KB

op_increment.md

File metadata and controls

81 lines (59 loc) · 1.47 KB

operator++

  • iterator[meta header]
  • std[meta namespace]
  • basic_const_iterator[meta class]
  • function[meta id-type]
  • cpp23[meta cpp]
constexpr basic_const_iterator& operator++();   // (1)

constexpr void operator++(int);                 // (2)
constexpr basic_const_iterator operator++(int) requires forward_iterator<Iterator>; // (3)
  • forward_iterator[link /reference/iterator/forward_iterator.md]

概要

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

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

効果

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

  • (1) : 以下と等価

    ++current_;
    return *this;
  • (2) : ++current_;

  • (3) : 以下と等価

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

#include <iostream>
#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';
}
  • ++cit[color ff0000]
  • cit++[color ff0000]

出力

2
3

バージョン

言語

  • C++23

処理系

参照