Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 1.48 KB

op_decrement.md

File metadata and controls

79 lines (57 loc) · 1.48 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--() requires bidirectional_iterator<Iterator>;     // (1)

constexpr basic_const_iterator operator--(int) requires bidirectional_iterator<Iterator>;   // (2)
  • bidirectional_iterator[link /reference/iterator/bidirectional_iterator.md]

概要

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

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

効果

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

  • (1) : 以下と等価

    --current_;
    return *this;
  • (2) : 以下と等価

    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.end();

  --cit;

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

  cit--;

  std::cout << *cit << '\n';
  
}
  • --cit[color ff0000]
  • cit--[color ff0000]

出力

5
4

バージョン

言語

  • C++23

処理系

参照