◐ Shell
clean mode source ↗

std::basic_string<CharT,Traits,Allocator>::end, std::basic_string<CharT,Traits,Allocator>::cend — cppreference.com

Материал из cppreference.com

<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>

(1)

iterator end();

(до C++11)

iterator end() noexcept;

(начиная с C++11)
(до C++20)

constexpr iterator end() noexcept;

(начиная с C++20)
(2)

const_iterator end() const;

(до C++11)

const_iterator end() const noexcept;

(начиная с C++11)
(до C++20)

constexpr const_iterator end() const noexcept;

(начиная с C++20)
(3)

const_iterator cend() const;

(до C++11)

const_iterator cend() const noexcept;

(начиная с C++11)
(до C++20)

constexpr const_iterator cend() const noexcept;

(начиная с C++20)

Возвращает итератор на символ, следующий за последним символом строки. Этот символ действует как заполнитель, попытка доступа к нему приводит к неопределённому поведению.

Параметры

(нет)

Возвращаемое значение

Итератор на символ, следующий за последним символом.

Сложность

Константная.

Примечание

В libstdc++, cend() недоступна в режиме C++98.

Пример

#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>

int main()
{
    std::string s("Exemparl");
    std::next_permutation(s.begin(), s.end());
    
    std::string c;
    std::copy(s.cbegin(), s.cend(), std::back_inserter(c));
    std::cout << c << '\n'; // "Exemplar"
}

Вывод:

Отчёты о дефектах

Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:

Номер Применён Поведение в стандарте Корректное поведение
LWG 1192 C++98 std::basic_string не имеет функцию-элемент cend() добавлена

Смотрите также

возвращает итератор на начало
(public функция-элемент) [править]
возвращает итератор на конец
(public функция-элемент std::basic_string_view<CharT,Traits>) [править]