std::basic_string<CharT,Traits,Allocator>::at
Von cppreference.com
< cpp | string | 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
Führen Sie diesen Code aus
#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) | |
| greift mit Grenzwertprüfung auf das angegebene Zeichen zu (public member function of std::basic_string_view<CharT,Traits>) |