std::basic_string<CharT,Traits,Allocator>:: at
|
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>
)
|