[string.iterators]

# 27 Strings library [[strings]](./#strings)

## 27.4 String classes [[string.classes]](string.classes#string.iterators)

### 27.4.3 Class template basic_string [[basic.string]](basic.string#string.iterators)

#### 27.4.3.4 Iterator support [string.iterators]

[ð](#lib:begin,basic_string)

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

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L2813)

*Returns*: An iterator referring to the first character in the string[.](#1.sentence-1)

[ð](#lib:end,basic_string)

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

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L2827)

*Returns*: An iterator which is the past-the-end value[.](#2.sentence-1)

[ð](#lib:rbegin,basic_string)

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

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L2841)

*Returns*: An iterator which is semantically equivalent toreverse_iterator(end())[.](#3.sentence-1)

[ð](#lib:rend,basic_string)

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

[4](#4)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/strings.tex#L2856)

*Returns*: An iterator which is semantically equivalent toreverse_iterator(begin())[.](#4.sentence-1)
