Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
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 Bereichsprüfung durchgeführt. Bei ungültigem Zugriff wird eine Ausnahme vom Typ std::out_of_range ausgelöst.

Inhalt

[bearbeiten] Parameter

pos - Position des zurückzugebenden Zeichens

[bearbeiten] Rückgabewert

Referenz auf das angeforderte Zeichen.

[bearbeiten] Ausnahmen

Löst std::out_of_range aus, wenn pos >= size().

Wenn aus irgendeinem Grund eine Ausnahme ausgelöst wird, haben diese Funktionen keine Auswirkungen (starke Ausnahme-Sicherheitsgarantie).

[bearbeiten] Komplexität

Konstant.

[bearbeiten] Beispiel

#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';
    }
}

Mögliche Ausgabe

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

[bearbeiten] Fehlerberichte

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

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

[bearbeiten] Siehe auch

greift auf das angegebene Zeichen zu
(public member function) [bearbeiten]
greift mit Grenzwertprüfung auf das angegebene Zeichen zu
(public member function of std::basic_string_view<CharT,Traits>) [bearbeiten]