std::basic_string<CharT,Traits,Allocator>:: operator[]
|
CharT
&
operator
[
]
(
size_type pos
)
;
|
(1) | (constexpr начиная с C++20) |
|
const
CharT
&
operator
[
]
(
size_type pos
)
const
;
|
(2) | (constexpr начиная с C++20) |
Возвращает ссылку на символ в указанной позиции pos , если pos < size ( ) , или если pos == size ( ) :
|
Поведение не определено. |
(until C++11) |
|
Возвращает ссылку на CharT ( ) , если объект, на который ссылается возвращаемая ссылка, изменяется на любое значение, отличное от CharT ( ) , поведение не определено. |
(since C++11) |
|
Если pos > size ( ) равно true , поведение не определено. |
(до C++26) |
|
Если pos > size ( ) равно true :
|
(начиная с C++26) |
Содержание |
Параметры
| pos | - | позиция возвращаемого символа |
Возвращаемое значение
Сложность
Константа.
Пример
#include <iostream> #include <string> int main() { const std::string e("Exemplar"); for (unsigned i = e.length() - 1; i != 0; i /= 2) std::cout << e[i]; std::cout << '\n'; const char* c = &e[0]; std::cout << c << '\n'; // вывод в виде C-строки // Изменяем последний символ строки на 'y' std::string s("Exemplar "); s[s.size() - 1] = 'y'; // эквивалентно s.back() = 'y'; std::cout << s << '\n'; }
Вывод:
rmx Exemplar Exemplary
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение в опубликованной версии | Корректное поведение |
|---|---|---|---|
| LWG 259 | C++98 |
перегрузка
(
1
)
могла возвращать const lvalue
data ( ) [ pos ] , что было некорректно |
изменено на возврат
* ( begin ( ) + pos ) |
| LWG 2475 | C++11 |
если
pos
==
size
(
)
, поведение при модификации
объекта по возвращенной ссылке было неопределенным |
определено, если
модифицировано на CharT ( ) |
Смотрите также
|
обращается к указанному символу с проверкой границ
(публичная функция-член) |
|
|
(
DR*
)
|
обращается к первому символу
(публичная функция-член) |
|
(
DR*
)
|
обращается к последнему символу
(публичная функция-член) |
|
обращается к указанному символу
(публичная функция-член
std::basic_string_view<CharT,Traits>
)
|