std::basic_string<CharT,Traits,Allocator>::operator[]
Материал из ru.cppreference.net
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():
1)
|
Поведение не определено. |
(до C++11) |
|
Возвращает ссылку на |
(начиная с C++11) |
2) Возвращает ссылку на
CharT().|
Если |
(до C++26) |
|
Если
|
(начиная с C++26) |
Параметры
| pos | - | позиция возвращаемого символа |
Возвращаемое значение
1)
*
(
begin
(
)
+
pos
)
если
pos
<
size
(
)
, или ссылка на
CharT
(
)
если
pos
==
size
(
)
(начиная с C++11)
.
2)
*
(
begin
(
)
+
pos
)
если
pos
<
size
(
)
, или ссылка на
CharT
(
)
если
pos
==
size
(
)
.
Сложность
Константа.
Пример
Запустить этот код
#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>
)
|