Spec-Zone.ru › C++

std::basic_string<CharT,Traits,Allocator>::at

(1)
reference at( size_type pos );
(до C++20)
constexpr reference at( size_type pos );
(с C++20)
(2)
const_reference at( size_type pos ) const;
(до C++20)
constexpr const_reference at( size_type pos ) const;
(с C++20)

Возвращает ссылку на символ в указанном месте pos. Проверка границ выполняется, исключение типа std::out_of_range будет выброшено при недопустимом доступе.

Параметры

pos - позиция символа для возврата

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

Ссылка на запрашиваемый символ.

Исключения

Выбрасывает std::out_of_range если pos >= size().

Если исключение будет выброшено по какой-либо причине, эти функции не оказывают никакого эффекта (гарантия сильной безопасности исключений).

Сложность

Постоянная.

Пример

#include <iostream>
#include <stdexcept>
#include <string>
 
int main()
{
    std::string s("message"); // for capacity
 
    s = "abc";
    s.at(2) = 'x'; // OK
    std::cout << s << '\n';
 
    std::cout << "string size = " << s.size() << '\n';
    std::cout << "string capacity = " << s.capacity() << '\n';
 
    try
    {
        // This will throw since the requested offset is greater than the current size.
        s.at(3) = 'x';
    }
    catch (std::out_of_range const& exc)
    {
        std::cout << exc.what() << '\n';
    }
}

Возможный вывод:

abx
string size = 3
string capacity = 7
basic_string::at

Отчеты об ошибках

Следующие отчеты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.

DR Применен к Поведение, как опубликовано Правильное поведение
LWG 847 C++98 гарантии безопасности исключений не было добавлена гарантия сильной безопасности исключений

См. также

operator[]
доступ к указанному символу
(публичный член-функция)
at
доступ к указанному символу с проверкой границ
(публичный член-функция 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/at

Spec-Zone.ru

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