• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    function
    <iterator>

    std::basic_const_iterator::operator--

    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

    処理系

    参照