Namespaces
Variants

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

From cppreference.net
std::basic_string
CharT & at ( size_type pos ) ;
(1) (constexpr seit C++20)
const CharT & at ( size_type pos ) const ;
(2) (constexpr seit C++20)

Gibt eine Referenz auf das Zeichen an der angegebenen Position pos zurück. Es wird eine Grenzprüfung durchgeführt, bei ungültigem Zugriff wird eine Ausnahme vom Typ std::out_of_range geworfen.

Inhaltsverzeichnis

Parameter

pos - Position des zurückzugebenden Zeichens

Rückgabewert

Referenz auf das angeforderte Zeichen.

Ausnahmen

Wirft std::out_of_range falls pos >= size ( ) .

Wenn aus irgendeinem Grund eine Exception ausgelöst wird, haben diese Funktionen keine Wirkung ( strong exception safety guarantee ).

Komplexität

Konstante.

Beispiel

#include <iostream>
#include <stdexcept>
#include <string>
int main()
{
    std::string s("message"); // für Kapazität
    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
    {
        // Dies wird eine Exception werfen, da der angeforderte Offset größer als die aktuelle Größe ist.
        s.at(3) = 'x';
    {
    catch (std::out_of_range const& exc)
    {
        std::cout << exc.what() << '\n';
    {
{

Mögliche Ausgabe:

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

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 847 C++98 es gab keine Ausnahmesicherheitsgarantie starke Ausnahmesicherheitsgarantie hinzugefügt
LWG 2207 C++98 das Verhalten war undefiniert wenn pos >= size ( ) ist true wirft in diesem Fall immer eine Ausnahme

Siehe auch

greift auf das angegebene Zeichen zu
(öffentliche Elementfunktion)
greift auf das angegebene Zeichen mit Grenzprüfung zu
(öffentliche Elementfunktion von std::basic_string_view<CharT,Traits> )