std::basic_string<CharT,Traits,Allocator>::end, std::basic_string<CharT,Traits,Allocator>::cend
Материал из cppreference.com
< cpp | string | basic string
(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()constnoexcept; | (начиная с C++11) (до C++20) | |
constexpr const_iterator end()constnoexcept; | (начиная с C++20) | |
(3) | ||
const_iterator cend()const; | (до C++11) | |
const_iterator cend()constnoexcept; | (начиная с C++11) (до C++20) | |
constexpr const_iterator cend()constnoexcept; | (начиная с 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"}
Вывод:
Exemplar
[править]Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 1192 | C++98 | std::basic_string не имеет функцию-элемент cend() | добавлена |
[править]Смотрите также
(DR*) | возвращает итератор на начало (public функция-элемент) |
(C++17) | возвращает итератор на конец (public функция-элемент std::basic_string_view<CharT,Traits> ) |