Spec-Zone.ru › C++

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().

range-begin-end.svg

Параметры

(нет)

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

Итератор на первый символ.

Сложность

Постоянная.

Примечания

В 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() добавлен

См. также

endcend
(DR*)
возвращает итератор до конца
(общедоступная функция-член)
begincbegin
возвращает итератор в начало
(общедоступная функция-член 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API