QByteArrayView Class
Die Klasse QByteArrayView bietet eine Ansicht auf ein Array von Bytes mit einer Nur-Lese-Untermenge der QByteArray API. Mehr...
Kopfzeile: | #include <QByteArrayView> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Seit: | Qt 6.0 |
- Liste aller Mitglieder, einschließlich vererbter Mitglieder
- Veraltete Mitglieder
- QByteArrayView ist Teil von Implicitly Shared Classes und Classes for String Data.
Diese Klasse ist stark vergleichbar.
Diese Klasse ist stark vergleichbar mit QByteArray und const char *.
Diese Klasse ist stark vergleichbar mit QString, QStringView, QUtf8StringView, QLatin1StringView, QChar, und char16_t.
Beim Vergleich mit String- und Unicode-Zeichentypen wird der Inhalt als UTF-8 interpretiert.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
const_iterator | |
const_pointer | |
const_reference | |
const_reverse_iterator | |
difference_type | |
iterator | |
pointer | |
reference | |
reverse_iterator | |
size_type | |
storage_type | |
value_type |
Öffentliche Funktionen
QByteArrayView() | |
QByteArrayView(const Byte *data) | |
QByteArrayView(const Container &c) | |
QByteArrayView(const QByteArray &byteArray) | |
QByteArrayView(const char (&)[Size] data) | |
QByteArrayView(std::nullptr_t) | |
QByteArrayView(const Byte *first, const Byte *last) | |
QByteArrayView(const Byte *data, qsizetype len) | |
char | at(qsizetype n) const |
char | back() const |
QByteArrayView::const_iterator | begin() const |
QByteArrayView::const_iterator | cbegin() const |
QByteArrayView::const_iterator | cend() const |
void | chop(qsizetype length) |
QByteArrayView | chopped(qsizetype length) const |
(since 6.2) int | compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
QByteArrayView::const_pointer | constData() const |
bool | contains(QByteArrayView bv) const |
bool | contains(char ch) const |
qsizetype | count(QByteArrayView bv) const |
qsizetype | count(char ch) const |
QByteArrayView::const_reverse_iterator | crbegin() const |
QByteArrayView::const_reverse_iterator | crend() const |
QByteArrayView::const_pointer | data() const |
bool | empty() const |
QByteArrayView::const_iterator | end() const |
bool | endsWith(QByteArrayView bv) const |
bool | endsWith(char ch) const |
QByteArrayView | first(qsizetype n) const |
char | front() const |
qsizetype | indexOf(QByteArrayView bv, qsizetype from = 0) const |
qsizetype | indexOf(char ch, qsizetype from = 0) const |
bool | isEmpty() const |
bool | isNull() const |
(since 6.3) bool | isValidUtf8() const |
QByteArrayView | last(qsizetype n) const |
qsizetype | lastIndexOf(QByteArrayView bv, qsizetype from) const |
qsizetype | lastIndexOf(char ch, qsizetype from = -1) const |
(since 6.2) qsizetype | lastIndexOf(QByteArrayView bv) const |
qsizetype | length() const |
(since 6.8) qsizetype | max_size() const |
QByteArrayView::const_reverse_iterator | rbegin() const |
QByteArrayView::const_reverse_iterator | rend() const |
qsizetype | size() const |
(since 6.8) QByteArrayView & | slice(qsizetype pos, qsizetype n) |
(since 6.8) QByteArrayView & | slice(qsizetype pos) |
QByteArrayView | sliced(qsizetype pos) const |
QByteArrayView | sliced(qsizetype pos, qsizetype n) const |
bool | startsWith(QByteArrayView bv) const |
bool | startsWith(char ch) const |
QByteArray | toByteArray() const |
(since 6.3) double | toDouble(bool *ok = nullptr) const |
(since 6.3) float | toFloat(bool *ok = nullptr) const |
(since 6.3) int | toInt(bool *ok = nullptr, int base = 10) const |
(since 6.3) long | toLong(bool *ok = nullptr, int base = 10) const |
(since 6.3) qlonglong | toLongLong(bool *ok = nullptr, int base = 10) const |
(since 6.3) short | toShort(bool *ok = nullptr, int base = 10) const |
(since 6.3) uint | toUInt(bool *ok = nullptr, int base = 10) const |
(since 6.3) ulong | toULong(bool *ok = nullptr, int base = 10) const |
(since 6.3) qulonglong | toULongLong(bool *ok = nullptr, int base = 10) const |
(since 6.3) ushort | toUShort(bool *ok = nullptr, int base = 10) const |
(since 6.3) QByteArrayView | trimmed() const |
void | truncate(qsizetype length) |
(since 6.7) std::string_view | operator std::string_view() const |
char | operator[](qsizetype n) const |
Statische öffentliche Mitglieder
Verwandte Nicht-Mitglieder
bool | operator!=(const QByteArrayView &lhs, const QByteArrayView &rhs) |
bool | operator<(const QByteArrayView &lhs, const QByteArrayView &rhs) |
bool | operator<=(const QByteArrayView &lhs, const QByteArrayView &rhs) |
bool | operator==(const QByteArrayView &lhs, const QByteArrayView &rhs) |
bool | operator>(const QByteArrayView &lhs, const QByteArrayView &rhs) |
bool | operator>=(const QByteArrayView &lhs, const QByteArrayView &rhs) |
Detaillierte Beschreibung
Eine QByteArrayView referenziert einen zusammenhängenden Teil von Rohbytes, den sie nicht besitzt. Sie fungiert als Schnittstellentyp für alle Arten von Byte-Array-ähnlichen Daten, ohne dass zuerst ein QByteArray konstruiert werden muss.
Die Byte-Array-Daten können als ein Array (oder eine Array-kompatible Datenstruktur wie QByteArray, std::basic_string, etc.) von char
, signed char
, unsigned char
oder std::byte
dargestellt werden.
QByteArrayView ist als Schnittstellentyp konzipiert; sein Hauptanwendungsfall ist die Verwendung als Funktionsparametertyp. Wenn QByteArrayViews als automatische Variablen oder Datenmitglieder verwendet werden, muss darauf geachtet werden, dass die referenzierten Daten (z.B. im Besitz einer QByteArray) die QByteArrayView auf allen Codepfaden überdauern, damit die Byte-ArrayView nicht am Ende auf gelöschte Daten verweist.
Wenn QByteArrayView als Schnittstellentyp verwendet wird, kann eine einzelne Funktion eine Vielzahl von Byte-Array-ähnlichen Datenquellen akzeptieren. Eine Funktion, die QByteArrayView akzeptiert, ersetzt somit mehrere Funktionsüberladungen (z.B. QByteArray, const char *, etc.), während gleichzeitig noch mehr Byte-Array-Datenquellen an die Funktion übergeben werden können.
QByteArrayView sollte als Wert übergeben werden, nicht als Referenz-zu-Konst:
void myfun1(QByteArrayView bv); // preferred void myfun2(const QByteArrayView &bv); // compiles and works, but slower
Wenn Sie Ihren Benutzern die maximale Freiheit geben wollen, welche Art von Daten sie an Ihre Funktion übergeben können, begleiten Sie die QByteArrayView Überladung mit Überladungen für
- char: diese Überladung kann an die QByteArrayView Version delegieren:
void fun(QByteArrayView bv); void fun(char ch) { fun(QByteArrayView(&ch, 1)); }
auch wenn QByteArrayView aus technischen Gründen selbst keinen char-Konstruktor bereitstellen kann.
- QByteArray: wenn Sie eine unveränderte Kopie des Byte-Arrays speichern und somit die Vorteile von QByteArray nutzen möchten.
QByteArrayView kann auch als Rückgabewert einer Funktion verwendet werden. Wenn Sie eine Funktion aufrufen, die QByteArrayView zurückgibt, achten Sie besonders darauf, dass Sie die QByteArrayView nicht länger als die Funktion verspricht, um die referenzierten Daten am Leben zu erhalten. Im Zweifelsfall erhalten Sie eine starke Referenz auf die Daten, indem Sie toByteArray() aufrufen, um die QByteArrayView in eine QByteArray zu konvertieren.
Die von QByteArrayView unterstützten Methoden spiegeln die von QByteArray wider. Insbesondere verwendet es in dem begrenzten Maße, in dem es den betrachteten Zeichendaten Semantik (wie Groß- und Kleinschreibung, Abstände, Ziffern von Zahlen) zuschreibt, das C-Locale und die ASCII-Kodierung. Siehe C locale and ASCII functions für Details und die Einschränkungen dieser Methoden.
Kompatible Byte-Typen
QByteArrayView kann auf jedem Container von Bytes aufgebaut werden, wobei der Byte-Typ einer der folgenden ist:
char
(sowohl mit als auch ohne Vorzeichen)std::byte
Siehe auch QByteArray und QStringView.
Dokumentation der Mitgliedstypen
QByteArrayView::const_iterator
Dieses Typedef bietet einen STL-ähnlichen Konst-Iterator für QByteArrayView.
Siehe auch iterator und const_reverse_iterator.
QByteArrayView::const_pointer
Alias für value_type *
. Wird aus Gründen der Kompatibilität mit der STL bereitgestellt.
QByteArrayView::const_reference
Alias für value_type &
. Wird aus Gründen der Kompatibilität mit der STL bereitgestellt.
QByteArrayView::const_reverse_iterator
Dieses Typedef bietet einen STL-ähnlichen const Reverse-Iterator für QByteArrayView.
Siehe auch reverse_iterator und const_iterator.
QByteArrayView::difference_type
Alias für std::ptrdiff_t
. Wird aus Gründen der Kompatibilität mit der STL bereitgestellt.
QByteArrayView::iterator
Dieses Typedef bietet einen STL-ähnlichen konstanten Iterator für QByteArrayView.
QByteArrayView unterstützt keine veränderlichen Iteratoren, daher ist dies dasselbe wie const_iterator.
Siehe auch const_iterator und reverse_iterator.
QByteArrayView::pointer
Alias für value_type *
. Wird aus Kompatibilitätsgründen mit der STL bereitgestellt.
QByteArrayView unterstützt keine veränderlichen Zeiger, daher ist dies dasselbe wie const_pointer.
QByteArrayView::reference
Alias für value_type &
. Wird aus Kompatibilitätsgründen mit der STL bereitgestellt.
QByteArrayView unterstützt keine veränderlichen Referenzen, daher ist dies dasselbe wie const_reference.
QByteArrayView::reverse_iterator
Dieses Typedef bietet einen STL-ähnlichen const Reverse-Iterator für QByteArrayView.
QByteArrayView unterstützt keine veränderbaren Reverse-Iteratoren, so dass dies dasselbe ist wie const_reverse_iterator.
Siehe auch const_reverse_iterator und iterator.
QByteArrayView::size_type
Alias für qsizetype. Wird aus Kompatibilitätsgründen mit der STL bereitgestellt.
QByteArrayView::storage_type
Alias für char
.
QByteArrayView::value_type
Alias für const char
. Wird aus Kompatibilitätsgründen mit der STL bereitgestellt.
Dokumentation der Mitgliedsfunktionen
[noexcept]
bool QByteArrayView::startsWith(QByteArrayView bv) const
[constexpr noexcept]
bool QByteArrayView::startsWith(char ch) const
Gibt true
zurück, wenn diese Byte-Array-Ansicht mit der Byte-Array-Ansicht bv bzw. dem Zeichen ch beginnt; andernfalls wird false
zurückgegeben.
Siehe auch endsWith().
[noexcept]
bool QByteArrayView::endsWith(QByteArrayView bv) const
[constexpr noexcept]
bool QByteArrayView::endsWith(char ch) const
Gibt true
zurück, wenn diese Byte-Array-Ansicht mit der Byte-Array-Ansicht bv bzw. dem Zeichen ch endet; andernfalls wird false
zurückgegeben.
Siehe auch startsWith().
[noexcept]
qsizetype QByteArrayView::indexOf(QByteArrayView bv, qsizetype from = 0) const
[noexcept]
qsizetype QByteArrayView::indexOf(char ch, qsizetype from = 0) const
Gibt die Indexposition entweder des Beginns des ersten Vorkommens der durch bv betrachteten Bytefolge oder des ersten Vorkommens des Bytes ch in dieser Byte-Array-Ansicht zurück, wobei ab der Indexposition from.Returns -1 gesucht wird, wenn keine Übereinstimmung gefunden wird.
Ist from gleich -1, beginnt die Suche beim letzten Zeichen; ist es -2, beim vorletzten Zeichen und so weiter.
Siehe auch lastIndexOf() und contains().
[noexcept]
bool QByteArrayView::contains(QByteArrayView bv) const
[noexcept]
bool QByteArrayView::contains(char ch) const
Gibt true
zurück, wenn diese Byte-Array-Ansicht ein Vorkommen der Bytefolge enthält, die durch bv bzw. das Zeichen ch angezeigt wird; andernfalls wird false
zurückgegeben.
Siehe auch indexOf() und lastIndexOf().
[noexcept]
qsizetype QByteArrayView::lastIndexOf(QByteArrayView bv, qsizetype from) const
[noexcept]
qsizetype QByteArrayView::lastIndexOf(char ch, qsizetype from = -1) const
Gibt die Indexposition entweder des Beginns des letzten Vorkommens der durch bv betrachteten Bytefolge oder des letzten Vorkommens des Bytes ch in dieser Byte-Array-Ansicht zurück, wobei ab der Indexposition from rückwärts gesucht wird.
Ist from gleich -1, beginnt die Suche beim letzten Zeichen; ist sie gleich -2, beim vorletzten Zeichen usw.
Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.
Hinweis: Bei der Suche nach einem bv der Länge 0 wird die Übereinstimmung am Ende der Daten durch ein negatives from von der Suche ausgeschlossen, auch wenn -1
normalerweise als Suche vom Ende der Ansicht aus betrachtet wird: Die Übereinstimmung am Ende liegt nach dem letzten Zeichen und wird daher ausgeschlossen. Um eine solche letzte leere Übereinstimmung einzuschließen, geben Sie entweder einen positiven Wert für from an oder lassen Sie den Parameter from ganz weg.
Siehe auch indexOf() und contains().
[constexpr noexcept]
QByteArrayView::QByteArrayView()
Konstruiert eine Null-Byte-Array-Ansicht.
Siehe auch isNull().
[constexpr noexcept]
template <typename Byte> QByteArrayView::QByteArrayView(const Byte *data)
Konstruiert eine Byte-Array-Ansicht auf data. Die Länge wird durch Scannen nach dem ersten Byte(0)
bestimmt.
data muss während der Lebensdauer dieses Byte-Array-Ansichtsobjekts gültig bleiben.
Die Übergabe von nullptr
als data ist sicher und führt zu einer Null-Byte-Array-Ansicht.
Dieser Konstruktor nimmt nur an der Überladungsauflösung teil, wenn data kein Array ist und wenn Byte
ein kompatibler Byte-Typ ist.
Siehe auch Compatible Byte Types.
[constexpr noexcept]
template <typename Container, QByteArrayView::if_compatible_container<Container> = true> QByteArrayView::QByteArrayView(const Container &c)
Konstruiert eine Byte-Array-Ansicht auf den Array-ähnlichen Container c. Die Länge und die Daten werden über std::size(c)
bzw. std::data(c)
festgelegt.
Die Daten des Containers müssen während der Lebensdauer dieses Byte-Array-View-Objekts gültig bleiben.
Dieser Konstruktor nimmt an der Überlastauflösung teil, wenn c ein beliebiger zusammenhängender Container mit Elementen eines kompatiblen Byte-Typs ist.
Siehe auch Compatible Byte Types.
[noexcept]
QByteArrayView::QByteArrayView(const QByteArray &byteArray)
Konstruiert eine Byte-Array-Ansicht auf byteArray.
byteArray.data()
muss während der Lebensdauer dieses Byte-Array-View-Objekts gültig bleiben.
Die Byte-Array-Ansicht ist null, wenn und nur wenn byteArray.isNull()
.
[constexpr noexcept]
template <size_t Size> QByteArrayView::QByteArrayView(const char (&)[Size] data)
Konstruiert eine Byte-Array-Ansicht auf das Char-Array data. Die Ansicht deckt das Array ab, bis das erste '\0'
gefunden wird, oder Size
, je nachdem, was zuerst eintritt. Wenn Sie das gesamte Array benötigen, verwenden Sie stattdessen fromArray().
data muss für die Lebensdauer dieses Byte Array View Objekts gültig bleiben.
Hinweis: Dieser Konstruktor ist nur für Char-Array-Literale verfügbar. Der Grund dafür ist die Kompatibilität mit C-Bibliotheken, die "ausreichend große" Arrays vordefinieren, aber nur einen Teil des vordefinierten Platzes verwenden. Um dies auf intuitive Weise in einer impliziten Konstruktorüberladung zu unterstützen, müssen wir bei der ersten char(0)
aufhören. Dies ist logisch für ein char-Array, aber nicht für ein std::byte
-Array.
Siehe auch fromArray.
[constexpr noexcept]
QByteArrayView::QByteArrayView(std::nullptr_t)
Konstruiert eine Null-Byte-Array-Ansicht.
Siehe auch isNull().
[constexpr]
template <typename Byte, QByteArrayView::if_compatible_byte<Byte> = true> QByteArrayView::QByteArrayView(const Byte *first, const Byte *last)
Konstruiert eine Byte-Array-Ansicht auf first mit der Länge (last - first).
Der Bereich [first,last)
muss während der Lebensdauer dieses QByteArrayViews gültig bleiben.
Die Übergabe von \nullptr
als first ist sicher, wenn last auch nullptr
ist, und führt zu einer Null-Byte-Array-Ansicht.
Das Verhalten ist undefiniert, wenn last vor first steht, oder first ist nullptr
und last ist nicht.
Dieser Konstruktor nimmt nur an der Überlastauflösung teil, wenn Byte
ein kompatibler Byte-Typ ist.
Siehe auch Compatible Byte Types.
[constexpr]
template <typename Byte, QByteArrayView::if_compatible_byte<Byte> = true> QByteArrayView::QByteArrayView(const Byte *data, qsizetype len)
Konstruiert eine Byte-Array-Ansicht auf data mit der Länge len.
Der Bereich [data,len)
muss während der Lebensdauer dieses QByteArrayViews gültig bleiben.
Die Übergabe von nullptr
als data ist sicher, wenn len ebenfalls 0 ist, und führt zu einer Null-Byte-Array-Ansicht.
Das Verhalten ist undefiniert, wenn len negativ ist oder, wenn positiv, wenn data nullptr
ist.
Dieser Konstruktor nimmt nur an der Überlastauflösung teil, wenn Byte
ein kompatibler Byte-Typ ist.
Siehe auch Compatible Byte Types.
[constexpr]
char QByteArrayView::at(qsizetype n) const
Gibt das Zeichen an der Position n in dieser Byte-Array-Ansicht zurück.
Das Verhalten ist undefiniert, wenn n negativ oder nicht kleiner als size() ist.
Siehe auch operator[](), front(), und back().
[constexpr]
char QByteArrayView::back() const
Gibt das letzte Byte in der Byte-Array-Ansicht zurück.
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen.
Warnung: Der Aufruf dieser Funktion bei einer leeren Byte-Array-Ansicht führt zu undefiniertem Verhalten.
Siehe auch front().
[constexpr noexcept]
QByteArrayView::const_iterator QByteArrayView::begin() const
Gibt einen const STL-artigen Iterator zurück, der auf das erste Byte in der Byte-Array-Ansicht zeigt.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Siehe auch end(), cbegin(), rbegin(), und data().
[constexpr noexcept]
QByteArrayView::const_iterator QByteArrayView::cbegin() const
Dasselbe wie begin().
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen.
Siehe auch cend(), begin(), crbegin(), und data().
[constexpr noexcept]
QByteArrayView::const_iterator QByteArrayView::cend() const
Dasselbe wie end().
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen.
Siehe auch cbegin(), end(), und crend().
[constexpr]
void QByteArrayView::chop(qsizetype length)
Kürzt diese Byte-Array-Ansicht um length Zeichen ab.
Dasselbe wie *this = first(size() - length)
.
Hinweis: Das Verhalten ist undefiniert, wenn length < 0 oder length > size().
Siehe auch sliced(), first(), last(), chopped(), truncate(), und slice().
[constexpr]
QByteArrayView QByteArrayView::chopped(qsizetype length) const
Gibt eine Kopie dieser Byte-Array-Ansicht zurück, bei der die letzten length Bytes weggelassen werden. Mit anderen Worten, gibt eine Byte-Array-Ansicht der Länge size() - length zurück, die am Anfang dieses Objekts beginnt.
Dasselbe wie first(size() - length)
.
Hinweis: Das Verhalten ist undefiniert, wenn length < 0 oder length > size().
Siehe auch first(), last(), sliced(), chop(), truncate(), und slice().
[noexcept, since 6.2]
int QByteArrayView::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
Gibt eine ganze Zahl zurück, die kleiner, gleich oder größer als Null ist, je nachdem, ob diese QByteArrayView vor, an der gleichen Position wie oder nach der QByteArrayView bv sortiert ist. Der Vergleich wird unter Berücksichtigung der Groß- und Kleinschreibung cs durchgeführt.
Diese Funktion wurde in Qt 6.2 eingeführt.
Siehe auch operator==().
[constexpr noexcept]
QByteArrayView::const_pointer QByteArrayView::constData() const
Gibt einen const char
Zeiger auf das erste Byte in der Byte-Array-Ansicht zurück.
Hinweis: Das durch den Rückgabewert dargestellte Zeichenarray ist nicht garantiert null-terminiert. Der zurückgegebene Zeiger ist nur sicher für den Zugriff auf Bytes mit Indizes, die kleiner sind als die dieser Byte-Array-Ansicht size().
Siehe auch data(), begin(), und end().
[noexcept]
qsizetype QByteArrayView::count(QByteArrayView bv) const
Gibt die Anzahl der (sich möglicherweise überschneidenden) Vorkommen der Bytefolge zurück, die von bv in dieser Byte-Array-Ansicht angezeigt wird.
Siehe auch contains() und indexOf().
[noexcept]
qsizetype QByteArrayView::count(char ch) const
Dies ist eine überladene Funktion.
Gibt die Anzahl der Vorkommen von Byte ch in dieser Byte-Array-Ansicht zurück.
Siehe auch contains() und indexOf().
[constexpr noexcept]
QByteArrayView::const_reverse_iterator QByteArrayView::crbegin() const
Dasselbe wie rbegin().
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen.
Siehe auch crend(), rbegin(), und cbegin().
[constexpr noexcept]
QByteArrayView::const_reverse_iterator QByteArrayView::crend() const
Dasselbe wie rend().
Diese Funktion ist aus Gründen der STL-Kompatibilität vorgesehen.
Siehe auch crbegin(), rend(), und cend().
[constexpr noexcept]
QByteArrayView::const_pointer QByteArrayView::data() const
Gibt einen const char
Zeiger auf das erste Byte in der Byte-Array-Ansicht zurück.
Hinweis: Das durch den Rückgabewert dargestellte Zeichenarray ist nicht garantiert null-terminiert. Der zurückgegebene Zeiger ist nur für den Zugriff auf Bytes mit Indizes sicher, die kleiner sind als die dieser Byte-Array-Ansicht size().
[constexpr noexcept]
bool QByteArrayView::empty() const
Gibt true
zurück, wenn diese Byte-Array-Ansicht leer ist, d. h. size() == 0
.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Siehe auch isEmpty(), isNull(), und size().
[constexpr noexcept]
QByteArrayView::const_iterator QByteArrayView::end() const
Gibt einen const STL-artigen Iterator zurück, der direkt auf das letzte Byte in der Byte-Array-Ansicht zeigt.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Siehe auch begin(), cend(), und rend().
[constexpr]
QByteArrayView QByteArrayView::first(qsizetype n) const
Gibt eine Byte-Array-Ansicht zurück, die auf die ersten n Bytes dieser Byte-Array-Ansicht zeigt. Äquivalent zu sliced(0, n)
.
Hinweis: Das Verhalten ist undefiniert, wenn n < 0 oder n > size().
Siehe auch last(), startsWith(), chopped(), chop(), truncate(), sliced(), und slice().
[static constexpr noexcept]
template <typename Byte, size_t Size> QByteArrayView QByteArrayView::fromArray(const Byte (&)[Size] data)
Konstruiert eine Byte-Array-Ansicht auf das Array-Literal data. Die Ansicht umfasst das gesamte Array. Das schließt den abschließenden Null-Terminator von char
Array-Literalen ein. Wenn Sie nicht wollen, dass der Null-Terminator in der Ansicht enthalten ist, können Sie ihn mit chop() entfernen, wenn Sie sicher sind, dass er am Ende steht. Alternativ können Sie die Konstruktorüberladung mit einem char-Array-Literal verwenden, das eine Ansicht bis zum ersten Null-Terminator in den Daten, aber ohne diesen, erstellt.
Diese Funktion funktioniert mit jedem Array-Literal eines kompatiblen Byte-Typs.
Siehe auch Compatible Byte Types und QByteArrayView.
[constexpr]
char QByteArrayView::front() const
Gibt das erste Byte in der Byte-Array-Ansicht zurück.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Warnung: Der Aufruf dieser Funktion bei einer leeren Byte-Array-Ansicht führt zu undefiniertem Verhalten.
Siehe auch back().
[constexpr noexcept]
bool QByteArrayView::isEmpty() const
Gibt true
zurück, wenn diese Byte-Array-Ansicht leer ist, d. h. size() == 0
.
Siehe auch empty(), isNull(), und size().
[constexpr noexcept]
bool QByteArrayView::isNull() const
Gibt true
zurück, wenn diese Byte-Array-Ansicht null ist, d. h. data() == nullptr
.
Siehe auch empty(), isEmpty(), und size().
[noexcept, since 6.3]
bool QByteArrayView::isValidUtf8() const
Gibt true
zurück, wenn diese Byte-Array-Ansicht gültige UTF-8 kodierte Daten enthält, oder andernfalls false
.
Diese Funktion wurde in Qt 6.3 eingeführt.
[constexpr]
QByteArrayView QByteArrayView::last(qsizetype n) const
Gibt eine Byte-Array-Ansicht zurück, die auf die letzten n Bytes dieser Byte-Array-Ansicht zeigt.
Hinweis: Das Verhalten ist undefiniert, wenn n < 0 oder n > size().
Siehe auch first(), endsWith(), chopped(), chop(), truncate(), sliced(), und slice().
[noexcept, since 6.2]
qsizetype QByteArrayView::lastIndexOf(QByteArrayView bv) const
Dies ist eine überladene Funktion.
Gibt die Indexposition des Beginns des letzten Vorkommens der von bv angezeigten Bytefolge in dieser Byte-Array-Ansicht zurück, wobei vom Ende dieser Byte-Array-Ansicht rückwärts gesucht wird. Gibt -1 zurück, wenn keine Übereinstimmung gefunden wird.
Diese Funktion wurde in Qt 6.2 eingeführt.
Siehe auch indexOf() und contains().
[constexpr noexcept]
qsizetype QByteArrayView::length() const
Dasselbe wie size().
Siehe auch empty(), isEmpty(), isNull(), und size().
[static constexpr noexcept, since 6.8]
qsizetype QByteArrayView::maxSize()
Sie gibt die maximale Anzahl von Elementen zurück, die die Ansicht theoretisch darstellen kann. In der Praxis kann die Anzahl viel kleiner sein, begrenzt durch den dem System zur Verfügung stehenden Speicher.
Diese Funktion wurde in Qt 6.8 eingeführt.
[constexpr noexcept, since 6.8]
qsizetype QByteArrayView::max_size() const
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Rückgabe maxSize().
Diese Funktion wurde in Qt 6.8 eingeführt.
[constexpr noexcept]
QByteArrayView::const_reverse_iterator QByteArrayView::rbegin() const
Gibt einen const STL-artigen Reverse-Iterator zurück, der auf das erste Byte in der Byte-Array-Ansicht in umgekehrter Reihenfolge zeigt.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Siehe auch rend(), crbegin(), und begin().
[constexpr noexcept]
QByteArrayView::const_reverse_iterator QByteArrayView::rend() const
Gibt einen Reverse-Iterator im STL-Stil zurück, der in umgekehrter Reihenfolge auf ein Byte hinter dem letzten Byte in der Byte-Array-Ansicht zeigt.
Diese Funktion wird aus Gründen der STL-Kompatibilität bereitgestellt.
Siehe auch rbegin(), crend(), und end().
[constexpr noexcept]
qsizetype QByteArrayView::size() const
Gibt die Anzahl der Bytes in dieser Byte-Array-Ansicht zurück.
Siehe auch empty(), isEmpty(), und isNull().
[constexpr, since 6.8]
QByteArrayView &QByteArrayView::slice(qsizetype pos, qsizetype n)
Ändert diese Byte-Array-Ansicht so, dass sie an der Position pos beginnt und um n Bytes erweitert wird.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0, oder pos + n > size().
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch sliced(), first(), last(), chopped(), chop(), und truncate().
[constexpr, since 6.8]
QByteArrayView &QByteArrayView::slice(qsizetype pos)
Dies ist eine überladene Funktion.
Ändert diese Byte-Array-Ansicht so, dass sie an der Position pos beginnt und sich bis zu ihrem Ende erstreckt.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch sliced(), first(), last(), chopped(), chop(), und truncate().
[constexpr]
QByteArrayView QByteArrayView::sliced(qsizetype pos) const
Gibt eine Byte-Array-Ansicht zurück, die an der Position pos in diesem Objekt beginnt und bis zu dessen Ende reicht.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0 oder pos > size().
Siehe auch first(), last(), chopped(), chop(), truncate(), und slice().
[constexpr]
QByteArrayView QByteArrayView::sliced(qsizetype pos, qsizetype n) const
Gibt eine Byte-Array-Ansicht zurück, die auf n Bytes dieser Byte-Array-Ansicht zeigt, beginnend an der Position pos.
Hinweis: Das Verhalten ist undefiniert, wenn pos < 0, n < 0, oder pos + n > size().
Siehe auch first(), last(), chopped(), chop(), truncate(), und slice().
QByteArray QByteArrayView::toByteArray() const
Gibt eine tiefe Kopie der Daten dieser Byte-Array-Ansicht als QByteArray zurück.
Der Rückgabewert ist null QByteArray wenn und nur wenn diese Byte-Array-Ansicht null ist.
[since 6.3]
double QByteArrayView::toDouble(bool *ok = nullptr) const
Gibt diese Byte-Array-Ansicht konvertiert in einen double
-Wert zurück.
Gibt eine Unendlichkeit zurück, wenn die Konvertierung überläuft, oder 0.0, wenn die Konvertierung aus anderen Gründen fehlschlägt (z.B. Unterlauf).
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Warnung: Der Inhalt von QByteArrayView darf nur gültige numerische Zeichen enthalten, darunter das Plus-/Minuszeichen, das in der wissenschaftlichen Notation verwendete Zeichen e und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.
Hinweis: Die Konvertierung der Zahl erfolgt im Standardgebietsschema C, unabhängig vom Gebietsschema des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Zeichenketten vorzunehmen.
Diese Funktion ignoriert führende und abschließende Leerzeichen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
float QByteArrayView::toFloat(bool *ok = nullptr) const
Gibt diese Byte-Array-Ansicht konvertiert in einen float
-Wert zurück.
Gibt eine Unendlichkeit zurück, wenn die Konvertierung überläuft, oder 0.0, wenn die Konvertierung aus anderen Gründen fehlschlägt (z.B. Unterlauf).
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
QByteArrayView string("1234.56 Volt"); bool ok; float a = str.toFloat(&ok); // a == 0, ok == false a = string.first(7).toFloat(&ok); // a == 1234.56, ok == true
Warnung: Der Inhalt von QByteArrayView darf nur gültige numerische Zeichen enthalten, darunter das Plus-/Minuszeichen, das in der wissenschaftlichen Notation verwendete Zeichen e und den Dezimalpunkt. Die Einbeziehung der Einheit oder zusätzlicher Zeichen führt zu einem Konvertierungsfehler.
Hinweis: Die Konvertierung der Zahl erfolgt im Standardgebietsschema C, unabhängig vom Gebietsschema des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Zeichenketten vorzunehmen.
Diese Funktion ignoriert führende und abschließende Whitespaces.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
int QByteArrayView::toInt(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht umgewandelt in eine int
mit der Basis base zurück, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
QByteArrayView str("FF"); bool ok; int hex = str.toInt(&ok, 16); // hex == 255, ok == true int dec = str.toInt(&ok, 10); // dec == 0, ok == false
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
long QByteArrayView::toLong(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht zurück, die unter Verwendung der Basis base in eine long
int konvertiert wurde, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
QByteArrayView str("FF"); bool ok; long hex = str.toLong(&ok, 16); // hex == 255, ok == true long dec = str.toLong(&ok, 10); // dec == 0, ok == false
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
qlonglong QByteArrayView::toLongLong(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht zurück, die unter Verwendung der Basis base in eine long long
konvertiert wurde, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
short QByteArrayView::toShort(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht zurück, die unter Verwendung der Basis base in eine short
konvertiert wurde, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
uint QByteArrayView::toUInt(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht umgewandelt in eine unsigned int
mit der Basis base zurück, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
ulong QByteArrayView::toULong(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht umgewandelt in eine unsigned long int
mit der Basis base zurück, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
qulonglong QByteArrayView::toULongLong(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht umgewandelt in eine unsigned long long
mit der Basis base zurück, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[since 6.3]
ushort QByteArrayView::toUShort(bool *ok = nullptr, int base = 10) const
Gibt diese Byte-Array-Ansicht zurück, die unter Verwendung der Basis base in eine unsigned short
konvertiert wurde, die standardmäßig zehn ist. Die Basen 0 und 2 bis 36 werden unterstützt, wobei Buchstaben für Ziffern jenseits von 9 verwendet werden; A ist zehn, B ist elf und so weiter.
Wenn base gleich 0 ist, wird die Basis automatisch nach den folgenden Regeln bestimmt: Wenn die Ansicht des Byte-Arrays mit "0x" beginnt, wird der Rest als Hexadezimal (Basis 16) gelesen; andernfalls, wenn sie mit "0" beginnt, wird der Rest als Oktal (Basis 8) gelesen; andernfalls wird sie als Dezimal gelesen.
Gibt 0 zurück, wenn die Konvertierung fehlschlägt.
Wenn ok nicht nullptr
ist, wird ein Fehler durch Setzen von *ok auf false
und ein Erfolg durch Setzen von *ok auf true
gemeldet.
Hinweis: Die Konvertierung der Zahl wird in der Standard-C-Sprachumgebung durchgeführt, unabhängig von der Sprachumgebung des Benutzers. Verwenden Sie QLocale, um lokalisierte Konvertierungen zwischen Zahlen und Strings durchzuführen.
Diese Funktion wurde in Qt 6.3 eingeführt.
[noexcept, since 6.3]
QByteArrayView QByteArrayView::trimmed() const
Gibt eine Kopie dieser Byte-Array-Ansicht zurück, bei der am Anfang und am Ende Leerzeichen entfernt wurden.
Die Abstandszeichen sind diejenigen, für die die C++-Standardfunktion isspace()
in der C-Sprachumgebung true
zurückgibt; dies sind die ASCII-Zeichen Tabulator '\t', Zeilenvorschub '\n', Wagenrücklauf '\r', vertikaler Tabulator '\v', Formfeed '\f' und Leerzeichen ' '.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch QChar::SpecialCharacter und Spacing Characters.
[constexpr]
void QByteArrayView::truncate(qsizetype length)
Schneidet diese Byte-Array-Ansicht auf die Länge length ab.
Dasselbe wie *this = first(length)
.
Hinweis: Das Verhalten ist undefiniert, wenn length < 0 oder length > size().
Siehe auch first(), last(), sliced(), chopped(), und chop().
[constexpr noexcept, since 6.7]
std::string_view QByteArrayView::operator std::string_view() const
Konvertiert dieses QByteArrayView Objekt in ein std::string_view
Objekt. Die zurückgegebene Ansicht hat denselben Datenzeiger und dieselbe Länge wie diese Ansicht.
Diese Funktion wurde in Qt 6.7 eingeführt.
[constexpr]
char QByteArrayView::operator[](qsizetype n) const
Gibt das Zeichen an der Position n in dieser Byte-Array-Ansicht zurück.
Das Verhalten ist undefiniert, wenn n negativ oder nicht kleiner als size() ist.
Verwandte Nicht-Mitglieder
[noexcept]
bool operator!=(const QByteArrayView &lhs, const QByteArrayView &rhs)
[noexcept]
bool operator<(const QByteArrayView &lhs, const QByteArrayView &rhs)
[noexcept]
bool operator<=(const QByteArrayView &lhs, const QByteArrayView &rhs)
[noexcept]
bool operator==(const QByteArrayView &lhs, const QByteArrayView &rhs)
[noexcept]
bool operator>(const QByteArrayView &lhs, const QByteArrayView &rhs)
[noexcept]
bool operator>=(const QByteArrayView &lhs, const QByteArrayView &rhs)
Vergleichsoperatoren für QByteArrayView.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.