24 Strings library [strings]

24.4 String view classes [string.view]

24.4.2 Class template basic_­string_­view [string.view.template]

24.4.2.2 Iterator support [string.view.iterators]

using const_iterator = implementation-defined;

Тип, отвечающий требованиям постоянного итератора произвольного доступа ([random.access.iterators]) и непрерывного итератора ([iterator.requirements.general]), который value_­type является параметром шаблона charT.

Для a basic_­string_­view strлюбая операция, которая делает недействительным указатель в диапазоне, [str.data(), str.data() + str.size()) делает недействительными указатели, итераторы и ссылки, возвращаемые из strметодов.

Все требования к контейнерным итераторам ([container.requirements]) также применимы basic_­string_­view​::​const_­iterator .

constexpr const_iterator begin() const noexcept; constexpr const_iterator cbegin() const noexcept;

Returns: Итератор такой, что

  • если !empty(), &*begin() == data_­,

  • в противном случае - неопределенное значение, такое [begin(), end()) как допустимый диапазон.

constexpr const_iterator end() const noexcept; constexpr const_iterator cend() const noexcept;

Returns: begin() + size().

constexpr const_reverse_iterator rbegin() const noexcept; constexpr const_reverse_iterator crbegin() const noexcept;

Returns: const_­reverse_­iterator(end()).

constexpr const_reverse_iterator rend() const noexcept; constexpr const_reverse_iterator crend() const noexcept;

Returns: const_­reverse_­iterator(begin()).