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

履歴 編集

function
<iterator>

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

constexpr basic_const_iterator& operator--() requires bidirectional_iterator<Iterator>;     // (1)

constexpr basic_const_iterator operator--(int) requires bidirectional_iterator<Iterator>;   // (2)

概要

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

  • (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';

}

出力

5
4

バージョン

言語

  • C++23

処理系

参照