最終更新日時: 2026年02月17日 23時22分33秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<map>

# std::map::crbegin(C++11)

    const_reverse_iterator crbegin() const noexcept;           // (1) C++11
    constexpr const_reverse_iterator crbegin() const noexcept; // (1) C++26

## 概要

`map` コンテナ内の末尾を指す逆イテレータを取得する。 内部的に、`map` コンテナは各要素をキーの値に従って下位から上位へと並べており、従って `crbegin()` は最上位のキーにあたる値へのイテレータを返す。 `crbegin()` は `end()` と同じ要素を指すわけではなく、その前の要素を指すことに注意。

## 戻り値

反転したシーケンスの先頭を指す逆イテレータ。 `const_reverse_iterator` はメンバ型である。`map` クラステンプレートにおいて、これらは逆双方向イテレータであり、`reverse_iterator<const_iterator>` と定義される。

## 計算量

定数時間。

## 例

    #include <iostream>
    #include <map>

    int main()
    {
      std::map<int, char> m;
      m.insert(std::make_pair(5, 'e'));
      m.insert(std::make_pair(2, 'b'));
      m.insert(std::make_pair(4, 'd'));
      m.insert(std::make_pair(1, 'a'));
      m.insert(std::make_pair(1, 'a'));

      std::map<int,char>::const_reverse_iterator i = m.crbegin();
      for( ; i != m.crend() ; ++i )
        std::cout << i->first << " " << i->second << std::endl;

      return 0;
    }

### 出力

    5 e
    4 d
    2 b
    1 a

### 処理系

- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: 2012 ✅

## 関連項目

名前 | 説明
--- | ---
`map::begin` | 先頭を指すイテレータを取得する
`map::end` | 末尾の次を指すイテレータを取得する
`map::cbegin` | 先頭を指すconstイテレータを取得する
`map::cend` | 末尾の次を指すconstイテレータを取得する
`map::rbegin` | 末尾を指す逆イテレータを取得する
`map::rend` | 先頭の前を指す逆イテレータを取得する
`map::crend` | 先頭の前を指す逆constイテレータを取得する

## 参照

- P3372R3 constexpr containers and adaptors