std::basic_string<CharT,Traits,Allocator>::data
| const CharT* data() const; |
(1) | (noexcept seit C++11) (constexpr seit C++20) |
| CharT* data() noexcept; |
(2) | (seit C++17) (constexpr seit C++20) |
Gibt einen Zeiger auf das zugrundeliegende Array zurück, das als Zeichenspeicher dient. Der Zeiger ist so beschaffen, dass der Bereich
|
|
(bis C++11) |
|
|
(seit C++11) |
gültig ist und die darin enthaltenen Werte den im String gespeicherten Werten entsprechen.
|
Das zurückgegebene Array muss nicht nullterminiert sein. Wenn empty() true zurückgibt, ist der Zeiger ein nicht-null Zeiger, der nicht dereferenziert werden sollte. |
(bis C++11) |
|
Das zurückgegebene Array ist nullterminiert, d. h. Wenn empty() true zurückgibt, zeigt der Zeiger auf ein einzelnes Nullzeichen. |
(seit C++11) |
Der von data() erhaltene Zeiger kann ungültig werden durch
- das Übergeben einer nicht-const Referenz auf den String an eine Standardbibliotheksfunktion oder
- das Aufrufen von nicht-const Memberfunktionen auf dem String, ausgenommen
operator[](), at(), front(), back(), begin(), end(), rbegin(), rend().
data zugegriffen wird, hat undefiniertes Verhalten zur Folge.data() + size() gespeichert ist, auf einen anderen Wert als CharT() hat undefiniertes Verhalten zur Folge.Inhalt |
[edit] Parameter
(keine)
[edit] Rückgabewert
Ein Zeiger auf den zugrundeliegenden Zeichenspeicher.
|
data()[i] == operator[](i) für jedes |
(bis C++11) |
|
data() + i == std::addressof(operator[](i)) für jedes |
(seit C++11) |
[edit] Komplexität
Konstant.
[edit] Beispiel
#include <algorithm> #include <cassert> #include <cstring> #include <string> int main() { std::string const s("Emplary"); assert(s.size() == std::strlen(s.data())); assert(std::equal(s.begin(), s.end(), s.data())); assert(std::equal(s.data(), s.data() + s.size(), s.begin())); assert('\0' == *(s.data() + s.size())); }
[edit] Siehe auch
| (DR*) |
greift auf das erste Zeichen zu (public member function) |
| (DR*) |
greift auf das letzte Zeichen zu (public member function) |
| gibt eine nicht modifizierbare Standard-C-Zeichen-Array-Version des Strings zurück (public member function) | |
| gibt einen Zeiger auf das erste Zeichen einer Ansicht zurück (public member function of std::basic_string_view<CharT,Traits>) |