std::basic_string<CharT,Traits,Allocator>::begin, std::basic_string<CharT,Traits,Allocator>::cbegin
| (1) | ||
iterator begin(); |
(до C++11) | |
iterator begin() noexcept; |
(с C++11) (до C++20) |
|
constexpr iterator begin() noexcept; |
(с C++20) | |
| (2) | ||
const_iterator begin() const; |
(до C++11) | |
const_iterator begin() const noexcept; |
(с C++11) (до C++20) |
|
constexpr const_iterator begin() const noexcept; |
(с C++20) | |
| (3) | ||
const_iterator cbegin() const; |
(до C++11) | |
const_iterator cbegin() const noexcept; |
(с C++11) (до C++20) |
|
constexpr const_iterator cbegin() const noexcept; |
(с C++20) |
Возвращает итератор на первый символ строки.
begin() возвращает изменяемый или постоянный итератор в зависимости от постоянства *this.
cbegin() всегда возвращает постоянный итератор. Он эквивалентен const_cast<const basic_string&>(*this).begin().
Параметры
(нет)
Возвращаемое значение
Итератор на первый символ.
Сложность
Постоянная.
Примечания
В libstdc++, cbegin() не доступен в режиме C++98.
Пример
#include <iostream>
#include <string>
int main()
{
std::string s("Exemplar");
*s.begin() = 'e';
std::cout << s << '\n';
auto i = s.cbegin();
std::cout << *i << '\n';
// *i = 'E'; // error: i is a constant iterator
}Вывод:
exemplar e
Отчеты об ошибках
Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, опубликованное | Правильное поведение |
|---|---|---|---|
| LWG 1192 | C++98 |
std::basic_string не имел функции-члена cbegin() |
добавлен |
См. также
(DR*) |
возвращает итератор до конца (общедоступная функция-член) |
| возвращает итератор в начало (общедоступная функция-член std::basic_string_view<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/basic_string/begin