std::basic_string_view<CharT,Traits>::data
Von cppreference.com
< cpp | string | basic string view
| constexpr const_pointer data() const noexcept; |
(seit C++17) | |
Gibt einen Zeiger auf das zugrundeliegende Zeichenarray zurück. Der Zeiger ist so beschaffen, dass der Bereich [data(), data() + size()) gültig ist und die Werte darin den Werten der Ansicht entsprechen.
Inhalt |
[edit] Parameter
(keine)
[edit] Rückgabewert
Ein Zeiger auf das zugrundeliegende Zeichenarray.
[edit] Komplexität
Konstant.
[edit] Hinweise
Im Gegensatz zu std::basic_string::data() und String-Literalen gibt std::basic_string_view::data() einen Zeiger auf einen Puffer zurück, der nicht notwendigerweise null-terminiert ist, z. B. eine Substring-Ansicht (z. B. von remove_suffix). Daher ist es typischerweise ein Fehler, data() an eine Routine zu übergeben, die nur ein const CharT* annimmt und einen null-terminierten String erwartet.
[edit] Beispiel
Führen Sie diesen Code aus
#include <cstring> #include <cwchar> #include <iostream> #include <string> #include <string_view> int main() { std::wstring_view wcstr_v = L"xyzzy"; std::cout << std::wcslen(wcstr_v.data()) << '\n'; // OK: the underlying character array is null-terminated char array[3] = {'B', 'a', 'r'}; std::string_view array_v(array, sizeof array); // std::cout << std::strlen(array_v.data()) << '\n'; // error: the underlying character array is not null-terminated std::string str(array_v.data(), array_v.size()); // OK std::cout << std::strlen(str.data()) << '\n'; // OK: the underlying character array of a std::string is always null-terminated }
Ausgabe
5 3
[edit] Siehe auch
| greift auf das erste Zeichen zu (öffentliche Member-Funktion) | |
| greift auf das letzte Zeichen zu (öffentliche Member-Funktion) | |
| gibt einen Zeiger auf das erste Zeichen eines Strings zurück (public member function of std::basic_string<CharT,Traits,Allocator>) |