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

履歴 編集

function
<deque>

# std::deque::cend(C++11)

    const_iterator cend() const noexcept;           // (1) C++11
    constexpr const_iterator cend() const noexcept; // (1) C++26

## 概要

末尾要素の次を指す読み取り専用イテレータを取得する。

`end()`は非`const`な`deque`オブジェクトに対して`iterator`を返し、`const`な`deque`オブジェクトに対しては`const_iterator`を返すが、`cend()`は`const_iterator`を返すバージョンのみが提供されている。

アルゴリズムにイテレータの組を渡す際、アルゴリズム内でデータの書き換えが起こらないというユーザーの意図を示す場合などに有用である。

## 戻り値

末尾要素の次を指す読み取り専用イテレータ

## 例外

投げない

## 計算量

定数時間

## 備考

- この関数によって返されるイテレータは、`*this`が保持するいずれの要素も参照しない。その指す先は、不正な範囲となるだろう

## 例

    #include <iostream>
    #include <deque>
    #include <algorithm>

    int main()
    {
      std::deque<int> c = {1, 2, 3};

      // このアルゴリズム内ではcの書き換えを決して行わない
      std::for_each(c.cbegin(), c.cend(), [](const int& x) {
        std::cout << x << std::endl;
      });
    }

### 出力

    1
    2
    3

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2010 ✅, 2012 ✅, 2013 ✅

## 参照

- P3372R3 constexpr containers and adaptors