std::basic_string<CharT,Traits,Allocator>:operator[]
Von cppreference.com
< cpp | string | basic string
CharT& operator[]( size_type pos ); |
(1) | (constexpr seit C++20) |
const CharT& operator[]( size_type pos ) const; |
(2) | (constexpr seit C++20) |
Gibt eine Referenz auf das Zeichen an der angegebenen Position pos zurück, wenn pos < size() ist, oder eine Referenz auf CharT(), wenn pos == size() ist. Es wird keine Bereichsprüfung durchgeführt.
Wenn pos > size() ist, ist das Verhalten undefiniert.
Für Überladung (1) ist das Verhalten undefiniert, wenn pos == size() istwenn das Objekt, auf das die zurückgegebene Referenz verweist, zu einem anderen Wert als CharT() geändert wird(seit C++11).
Inhalt |
[bearbeiten] Parameter
| pos | - | Position des zurückzugebenden Zeichens |
[bearbeiten] Rückgabewert
Referenz auf das angeforderte Element, wenn pos < size() ist, oder eine Referenz auf CharT(), wenn pos == size() ist.
[bearbeiten] Komplexität
Konstant.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <string> int main() { const std::string e("Exemplar"); for (unsigned i = e.length() - 1; i != 0; i /= 2) std::cout << e[i]; std::cout << '\n'; const char* c = &e[0]; std::cout << c << '\n'; // print as a C string // Change the last character of s into a 'y' std::string s("Exemplar "); s[s.size() - 1] = 'y'; // equivalent to s.back() = 'y'; std::cout << s << '\n'; }
Ausgabe
rmx Exemplar Exemplary
[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 259 | C++98 | Nicht-const Überladung konnte const lvalue data()[pos] zurückgeben, was ill-formed war | geändert zu Rückgabe von *(begin() + pos) |
| LWG 2475 | C++11 | Wenn pos == size(), war das Verhalten beim Ändern des Objekts, auf das die zurückgegebene Referenz verweist, undefiniert |
wohl-definiert, wenn geändert zu CharT() |
[bearbeiten] Siehe auch
| greift mit Grenzwertprüfung auf das angegebene Zeichen zu (öffentliche Member-Funktion) | |
| (DR*) |
greift auf das erste Zeichen zu (public member function) |
| (DR*) |
greift auf das letzte Zeichen zu (public member function) |
| greift auf das angegebene Zeichen zu (öffentliche Member-Funktion von std::basic_string_view<CharT,Traits>) |