QtBase  v6.3.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | Related Functions | List of all members
QByteArray Class Reference

The QByteArray class provides an array of bytes. More...

#include <qbytearray.h>

Classes

class  FromBase64Result
 The QByteArray::FromBase64Result class holds the result of a call to QByteArray::fromBase64Encoding. More...
 

Public Types

enum  Base64Option {
  Base64Encoding = 0 , Base64UrlEncoding = 1 , KeepTrailingEquals = 0 , OmitTrailingEquals = 2 ,
  IgnoreBase64DecodingErrors = 0 , AbortOnBase64DecodingErrors = 4
}
 
enum class  Base64DecodingStatus { Ok , IllegalInputLength , IllegalCharacter , IllegalPadding }
 
using DataPointer = QByteArrayData
 
typedef char * iterator
 
typedef const char * const_iterator
 
typedef iterator Iterator
 
typedef const_iterator ConstIterator
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef qsizetype size_type
 
typedef qptrdiff difference_type
 
typedef const char & const_reference
 
typedef char & reference
 
typedef char * pointer
 
typedef const char * const_pointer
 
typedef char value_type
 

Public Member Functions

constexpr QByteArray () noexcept
 
 QByteArray (const char *, qsizetype size=-1)
 
 QByteArray (qsizetype size, char c)
 
 QByteArray (qsizetype size, Qt::Initialization)
 
 QByteArray (const QByteArray &) noexcept
 
 ~QByteArray ()
 
QByteArrayoperator= (const QByteArray &) noexcept
 
QByteArrayoperator= (const char *str)
 
 QByteArray (QByteArray &&other) noexcept=default
 
void swap (QByteArray &other) noexcept
 
bool isEmpty () const noexcept
 
void resize (qsizetype size)
 
QByteArrayfill (char c, qsizetype size=-1)
 
qsizetype capacity () const
 
void reserve (qsizetype size)
 
void squeeze ()
 
 operator const char * () const
 
 operator const void * () const
 
char * data ()
 
const char * data () const noexcept
 
const char * constData () const noexcept
 
void detach ()
 
bool isDetached () const
 
bool isSharedWith (const QByteArray &other) const noexcept
 
void clear ()
 
char at (qsizetype i) const
 
char operator[] (qsizetype i) const
 
char & operator[] (qsizetype i)
 
char front () const
 
char & front ()
 
char back () const
 
char & back ()
 
qsizetype indexOf (char c, qsizetype from=0) const
 
qsizetype indexOf (QByteArrayView bv, qsizetype from=0) const
 
qsizetype lastIndexOf (char c, qsizetype from=-1) const
 
qsizetype lastIndexOf (QByteArrayView bv) const
 
qsizetype lastIndexOf (QByteArrayView bv, qsizetype from) const
 
bool contains (char c) const
 
bool contains (QByteArrayView bv) const
 
qsizetype count (char c) const
 
qsizetype count (QByteArrayView bv) const
 
int compare (QByteArrayView a, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
 
QByteArray left (qsizetype len) const
 
QByteArray right (qsizetype len) const
 
QByteArray mid (qsizetype index, qsizetype len=-1) const
 
QByteArray first (qsizetype n) const
 
QByteArray last (qsizetype n) const
 
QByteArray sliced (qsizetype pos) const
 
QByteArray sliced (qsizetype pos, qsizetype n) const
 
QByteArray chopped (qsizetype len) const
 
bool startsWith (QByteArrayView bv) const
 
bool startsWith (char c) const
 
bool endsWith (char c) const
 
bool endsWith (QByteArrayView bv) const
 
bool isUpper () const
 
bool isLower () const
 
bool isValidUtf8 () const noexcept
 
void truncate (qsizetype pos)
 
void chop (qsizetype n)
 
QByteArray toLower () const &
 
QByteArray toLower () &&
 
QByteArray toUpper () const &
 
QByteArray toUpper () &&
 
QByteArray trimmed () const &
 
QByteArray trimmed () &&
 
QByteArray simplified () const &
 
QByteArray simplified () &&
 
QByteArray leftJustified (qsizetype width, char fill=' ', bool truncate=false) const
 
QByteArray rightJustified (qsizetype width, char fill=' ', bool truncate=false) const
 
QByteArrayprepend (char c)
 
QByteArrayprepend (qsizetype count, char c)
 
QByteArrayprepend (const char *s)
 
QByteArrayprepend (const char *s, qsizetype len)
 
QByteArrayprepend (const QByteArray &a)
 
QByteArrayprepend (QByteArrayView a)
 
QByteArrayappend (char c)
 
QByteArrayappend (qsizetype count, char c)
 
QByteArrayappend (const char *s)
 
QByteArrayappend (const char *s, qsizetype len)
 
QByteArrayappend (const QByteArray &a)
 
QByteArrayappend (QByteArrayView a)
 
QByteArrayinsert (qsizetype i, QByteArrayView data)
 
QByteArrayinsert (qsizetype i, const char *s)
 
QByteArrayinsert (qsizetype i, const QByteArray &data)
 
QByteArrayinsert (qsizetype i, qsizetype count, char c)
 
QByteArrayinsert (qsizetype i, char c)
 
QByteArrayinsert (qsizetype i, const char *s, qsizetype len)
 
QByteArrayremove (qsizetype index, qsizetype len)
 
template<typename Predicate >
QByteArrayremoveIf (Predicate pred)
 
QByteArrayreplace (qsizetype index, qsizetype len, const char *s, qsizetype alen)
 
QByteArrayreplace (qsizetype index, qsizetype len, QByteArrayView s)
 
QByteArrayreplace (char before, QByteArrayView after)
 
QByteArrayreplace (const char *before, qsizetype bsize, const char *after, qsizetype asize)
 
QByteArrayreplace (QByteArrayView before, QByteArrayView after)
 
QByteArrayreplace (char before, char after)
 
QByteArrayoperator+= (char c)
 
QByteArrayoperator+= (const char *s)
 
QByteArrayoperator+= (const QByteArray &a)
 
QByteArrayoperator+= (QByteArrayView a)
 
QList< QByteArraysplit (char sep) const
 
QByteArray repeated (qsizetype times) const
 
QT_ASCII_CAST_WARN bool operator== (const QString &s2) const
 
QT_ASCII_CAST_WARN bool operator!= (const QString &s2) const
 
QT_ASCII_CAST_WARN bool operator< (const QString &s2) const
 
QT_ASCII_CAST_WARN bool operator> (const QString &s2) const
 
QT_ASCII_CAST_WARN bool operator<= (const QString &s2) const
 
QT_ASCII_CAST_WARN bool operator>= (const QString &s2) const
 
short toShort (bool *ok=nullptr, int base=10) const
 
ushort toUShort (bool *ok=nullptr, int base=10) const
 
int toInt (bool *ok=nullptr, int base=10) const
 
uint toUInt (bool *ok=nullptr, int base=10) const
 
long toLong (bool *ok=nullptr, int base=10) const
 
ulong toULong (bool *ok=nullptr, int base=10) const
 
qlonglong toLongLong (bool *ok=nullptr, int base=10) const
 
qulonglong toULongLong (bool *ok=nullptr, int base=10) const
 
float toFloat (bool *ok=nullptr) const
 
double toDouble (bool *ok=nullptr) const
 
QByteArray toBase64 (Base64Options options=Base64Encoding) const
 
QByteArray toHex (char separator='\0') const
 
QByteArray toPercentEncoding (const QByteArray &exclude=QByteArray(), const QByteArray &include=QByteArray(), char percent='%') const
 
QByteArraysetNum (short, int base=10)
 
QByteArraysetNum (ushort, int base=10)
 
QByteArraysetNum (int, int base=10)
 
QByteArraysetNum (uint, int base=10)
 
QByteArraysetNum (long, int base=10)
 
QByteArraysetNum (ulong, int base=10)
 
QByteArraysetNum (qlonglong, int base=10)
 
QByteArraysetNum (qulonglong, int base=10)
 
QByteArraysetNum (float, char format='g', int precision=6)
 
QByteArraysetNum (double, char format='g', int precision=6)
 
QByteArraysetRawData (const char *a, qsizetype n)
 
iterator begin ()
 
const_iterator begin () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator constBegin () const noexcept
 
iterator end ()
 
const_iterator end () const noexcept
 
const_iterator cend () const noexcept
 
const_iterator constEnd () const noexcept
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
void push_back (char c)
 
void push_back (const char *s)
 
void push_back (const QByteArray &a)
 
void push_back (QByteArrayView a)
 
void push_front (char c)
 
void push_front (const char *c)
 
void push_front (const QByteArray &a)
 
void push_front (QByteArrayView a)
 
void shrink_to_fit ()
 
iterator erase (const_iterator first, const_iterator last)
 
std::string toStdString () const
 
qsizetype size () const noexcept
 
qsizetype count () const noexcept
 
qsizetype length () const noexcept
 
bool isNull () const noexcept
 
DataPointerdata_ptr ()
 
 QByteArray (const DataPointer &dd)
 

Static Public Member Functions

static QByteArray number (int, int base=10)
 
static QByteArray number (uint, int base=10)
 
static QByteArray number (long, int base=10)
 
static QByteArray number (ulong, int base=10)
 
static QByteArray number (qlonglong, int base=10)
 
static QByteArray number (qulonglong, int base=10)
 
static QByteArray number (double, char format='g', int precision=6)
 
static QByteArray fromRawData (const char *data, qsizetype size)
 
static FromBase64Result fromBase64Encoding (QByteArray &&base64, Base64Options options=Base64Encoding)
 
static FromBase64Result fromBase64Encoding (const QByteArray &base64, Base64Options options=Base64Encoding)
 
static QByteArray fromBase64 (const QByteArray &base64, Base64Options options=Base64Encoding)
 
static QByteArray fromHex (const QByteArray &hexEncoded)
 
static QByteArray fromPercentEncoding (const QByteArray &pctEncoded, char percent='%')
 
static QByteArray fromStdString (const std::string &s)
 

Friends

class QString
 
bool operator== (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator== (const QByteArray &a1, const char *a2) noexcept
 
bool operator== (const char *a1, const QByteArray &a2) noexcept
 
bool operator!= (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator!= (const QByteArray &a1, const char *a2) noexcept
 
bool operator!= (const char *a1, const QByteArray &a2) noexcept
 
bool operator< (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator< (const QByteArray &a1, const char *a2) noexcept
 
bool operator< (const char *a1, const QByteArray &a2) noexcept
 
bool operator<= (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator<= (const QByteArray &a1, const char *a2) noexcept
 
bool operator<= (const char *a1, const QByteArray &a2) noexcept
 
bool operator> (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator> (const QByteArray &a1, const char *a2) noexcept
 
bool operator> (const char *a1, const QByteArray &a2) noexcept
 
bool operator>= (const QByteArray &a1, const QByteArray &a2) noexcept
 
bool operator>= (const QByteArray &a1, const char *a2) noexcept
 
bool operator>= (const char *a1, const QByteArray &a2) noexcept
 
bool operator== (const QByteArray &a1, std::nullptr_t) noexcept
 
bool operator!= (const QByteArray &a1, std::nullptr_t) noexcept
 
bool operator< (const QByteArray &, std::nullptr_t) noexcept
 
bool operator> (const QByteArray &a1, std::nullptr_t) noexcept
 
bool operator<= (const QByteArray &a1, std::nullptr_t) noexcept
 
bool operator>= (const QByteArray &, std::nullptr_t) noexcept
 
bool operator== (std::nullptr_t, const QByteArray &a2) noexcept
 
bool operator!= (std::nullptr_t, const QByteArray &a2) noexcept
 
bool operator< (std::nullptr_t, const QByteArray &a2) noexcept
 
bool operator> (std::nullptr_t, const QByteArray &a2) noexcept
 
bool operator<= (std::nullptr_t, const QByteArray &a2) noexcept
 
bool operator>= (std::nullptr_t, const QByteArray &a2) noexcept
 
Q_CORE_EXPORT QByteArray qUncompress (const uchar *data, qsizetype nbytes)
 

Related Functions

(Note that these are not member functions.)

char * qstrdup (const char *src)
 
char * qstrcpy (char *dst, const char *src)
 
char * qstrncpy (char *dst, const char *src, size_t len)
 
size_t qstrlen (const char *str)
 
size_t qstrnlen (const char *str, size_t maxlen)
 
int qstrcmp (const char *str1, const char *str2)
 
int qstrncmp (const char *str1, const char *str2, size_t len)
 
int qstricmp (const char *str1, const char *str2)
 
int qstrnicmp (const char *str1, const char *str2, size_t len)
 
quint16 qChecksum (QByteArrayView data, Qt::ChecksumType standard)
 
QByteArray qCompress (const QByteArray &data, int compressionLevel)
 
QByteArray qCompress (const uchar *data, qsizetype nbytes, int compressionLevel)
 
QByteArray qUncompress (const QByteArray &data)
 
QByteArray qUncompress (const uchar *data, qsizetype nbytes)
 
char * data ()
 
QDataStreamoperator<< (QDataStream &out, const QByteArray &ba)
 
QDataStreamoperator>> (QDataStream &in, QByteArray &ba)
 
const QByteArray operator+ (const QByteArray &a1, const QByteArray &a2)
 
const QByteArray operator+ (const QByteArray &a1, const char *a2)
 
const QByteArray operator+ (const QByteArray &a1, char a2)
 
const QByteArray operator+ (const char *a1, const QByteArray &a2)
 
const QByteArray operator+ (char a1, const QByteArray &a2)
 
 operator""_qba (const char *str, size_t size)
 
template< typename T > qsizetype erase (QByteArray &ba, const T &t)
 
template< typename Predicate > qsizetype erase_if (QByteArray &ba, Predicate pred)
 
QT_BEGIN_NAMESPACE int qvsnprintf (char *str, size_t n, const char *fmt, va_list ap)
 
int qsnprintf (char *str, size_t n, const char *fmt,...)
 

Detailed Description

The QByteArray class provides an array of bytes.

\inmodule QtCore

\reentrant

QByteArray can be used to store both raw bytes (including '\0's) and traditional 8-bit '\0'-terminated strings. Using QByteArray is much more convenient than using {const char *}. Behind the scenes, it always ensures that the data is followed by a '\0' terminator, and uses \l{implicit sharing} (copy-on-write) to reduce memory usage and avoid needless copying of data.

In addition to QByteArray, Qt also provides the QString class to store string data. For most purposes, QString is the class you want to use. It understands its content as Unicode text (encoded using UTF-16) where QByteArray aims to avoid assumptions about the encoding or semantics of the bytes it stores (aside from a few legacy cases where it uses ASCII). Furthermore, QString is used throughout in the Qt API. The two main cases where QByteArray is appropriate are when you need to store raw binary data, and when memory conservation is critical (e.g., with Qt for Embedded Linux).

One way to initialize a QByteArray is simply to pass a {const char *} to its constructor. For example, the following code creates a byte array of size 5 containing the data "Hello":

Although the size() is 5, the byte array also maintains an extra '\0' byte at the end so that if a function is used that asks for a pointer to the underlying data (e.g. a call to data()), the data pointed to is guaranteed to be '\0'-terminated.

QByteArray makes a deep copy of the {const char *} data, so you can modify it later without experiencing side effects. (If, for example for performance reasons, you don't want to take a deep copy of the data, use QByteArray::fromRawData() instead.)

Another approach is to set the size of the array using resize() and to initialize the data byte by byte. QByteArray uses 0-based indexes, just like C++ arrays. To access the byte at a particular index position, you can use operator[](). On non-const byte arrays, operator[]() returns a reference to a byte that can be used on the left side of an assignment. For example:

For read-only access, an alternative syntax is to use at():

at() can be faster than operator[](), because it never causes a \l{deep copy} to occur.

To extract many bytes at a time, use first(), last(), or sliced().

A QByteArray can embed '\0' bytes. The size() function always returns the size of the whole array, including embedded '\0' bytes, but excluding the terminating '\0' added by QByteArray. For example:

If you want to obtain the length of the data up to and excluding the first '\0' byte, call qstrlen() on the byte array.

After a call to resize(), newly allocated bytes have undefined values. To set all the bytes to a particular value, call fill().

To obtain a pointer to the actual bytes, call data() or constData(). These functions return a pointer to the beginning of the data. The pointer is guaranteed to remain valid until a non-const function is called on the QByteArray. It is also guaranteed that the data ends with a '\0' byte unless the QByteArray was created from \l{fromRawData()}{raw data}. This '\0' byte is automatically provided by QByteArray and is not counted in size().

QByteArray provides the following basic functions for modifying the byte data: append(), prepend(), insert(), replace(), and remove(). For example:

In the above example the replace() function's first two arguments are the position from which to start replacing and the number of bytes that should be replaced.

When data-modifying functions increase the size of the array, they may lead to reallocation of memory for the QByteArray object. When this happens, QByteArray expands by more than it immediately needs so as to have space for further expansion without reallocation until the size of the array has greatly increased.

The insert(), remove() and, when replacing a sub-array with one of different size, replace() functions can be slow (\l{linear time}) for large arrays, because they require moving many bytes in the array by at least one position in memory.

If you are building a QByteArray gradually and know in advance approximately how many bytes the QByteArray will contain, you can call reserve(), asking QByteArray to preallocate a certain amount of memory. You can also call capacity() to find out how much memory the QByteArray actually has allocated.

Note that using non-const operators and functions can cause QByteArray to do a deep copy of the data, due to \l{implicit sharing}.

QByteArray provides \l{STL-style iterators} (QByteArray::const_iterator and QByteArray::iterator). In practice, iterators are handy when working with generic algorithms provided by the C++ standard library.

Note
Iterators and references to individual QByteArray elements are subject to stability issues. They are often invalidated when a QByteArray-modifying operation (e.g. insert() or remove()) is called. When stability and iterator-like functionality is required, you should use indexes instead of iterators as they are not tied to QByteArray's internal state and thus do not get invalidated.
Iterators over a QByteArray, and references to individual bytes within one, cannot be relied on to remain valid when any non-const method of the QByteArray is called. Accessing such an iterator or reference after the call to a non-const method leads to undefined behavior. When stability for iterator-like functionality is required, you should use indexes instead of iterators as they are not tied to QByteArray's internal state and thus do not get invalidated.

If you want to find all occurrences of a particular byte or sequence of bytes in a QByteArray, use indexOf() or lastIndexOf(). The former searches forward starting from a given index position, the latter searches backward. Both return the index position of the byte sequence if they find it; otherwise, they return -1. For example, here's a typical loop that finds all occurrences of a particular string:

If you simply want to check whether a QByteArray contains a particular byte sequence, use contains(). If you want to find out how many times a particular byte sequence occurs in the byte array, use count(). If you want to replace all occurrences of a particular value with another, use one of the two-parameter replace() overloads.

\l{QByteArray}s can be compared using overloaded operators such as operator<(), operator<=(), operator==(), operator>=(), and so on. The comparison is based exclusively on the numeric values of the bytes and is very fast, but is not what a human would expect. QString::localeAwareCompare() is a better choice for sorting user-interface strings.

For historical reasons, QByteArray distinguishes between a null byte array and an empty byte array. A null byte array is a byte array that is initialized using QByteArray's default constructor or by passing (const char *)0 to the constructor. An empty byte array is any byte array with size 0. A null byte array is always empty, but an empty byte array isn't necessarily null:

All functions except isNull() treat null byte arrays the same as empty byte arrays. For example, data() returns a valid pointer (not nullptr) to a '\0' byte for a null byte array and QByteArray() compares equal to QByteArray(""). We recommend that you always use isEmpty() and avoid isNull().

Definition at line 84 of file qbytearray.h.

Member Typedef Documentation

◆ const_iterator

This typedef provides an STL-style const iterator for QByteArray.

See also
QByteArray::const_reverse_iterator, QByteArray::iterator

Definition at line 420 of file qbytearray.h.

◆ const_pointer

Definition at line 446 of file qbytearray.h.

◆ const_reference

Definition at line 443 of file qbytearray.h.

◆ const_reverse_iterator

Since
5.6

This typedef provides an STL-style const reverse iterator for QByteArray.

See also
QByteArray::reverse_iterator, QByteArray::const_iterator

Definition at line 424 of file qbytearray.h.

◆ ConstIterator

Definition at line 422 of file qbytearray.h.

◆ DataPointer

Definition at line 87 of file qbytearray.h.

◆ difference_type

Definition at line 442 of file qbytearray.h.

◆ iterator

This typedef provides an STL-style non-const iterator for QByteArray.

See also
QByteArray::reverse_iterator, QByteArray::const_iterator

Definition at line 419 of file qbytearray.h.

◆ Iterator

Definition at line 421 of file qbytearray.h.

◆ pointer

Definition at line 445 of file qbytearray.h.

◆ reference

Definition at line 444 of file qbytearray.h.

◆ reverse_iterator

Since
5.6

This typedef provides an STL-style non-const reverse iterator for QByteArray.

See also
QByteArray::const_reverse_iterator, QByteArray::iterator

Definition at line 423 of file qbytearray.h.

◆ size_type

Definition at line 441 of file qbytearray.h.

◆ value_type

Definition at line 447 of file qbytearray.h.

Member Enumeration Documentation

◆ Base64DecodingStatus

Enumerator
Ok 
IllegalInputLength 
IllegalCharacter 
IllegalPadding 

Definition at line 107 of file qbytearray.h.

◆ Base64Option

Since
5.2

This enum contains the options available for encoding and decoding Base64. Base64 is defined by \l{RFC 4648}, with the following options:

\value Base64Encoding (default) The regular Base64 alphabet, called simply "base64" \value Base64UrlEncoding An alternate alphabet, called "base64url", which replaces two characters in the alphabet to be more friendly to URLs. \value KeepTrailingEquals (default) Keeps the trailing padding equal signs at the end of the encoded data, so the data is always a size multiple of four. \value OmitTrailingEquals Omits adding the padding equal signs at the end of the encoded data. \value IgnoreBase64DecodingErrors When decoding Base64-encoded data, ignores errors in the input; invalid characters are simply skipped. This enum value has been added in Qt 5.15. \value AbortOnBase64DecodingErrors When decoding Base64-encoded data, stops at the first decoding error. This enum value has been added in Qt 5.15.

QByteArray::fromBase64Encoding() and QByteArray::fromBase64() ignore the KeepTrailingEquals and OmitTrailingEquals options. If the IgnoreBase64DecodingErrors option is specified, they will not flag errors in case trailing equal signs are missing or if there are too many of them. If instead the AbortOnBase64DecodingErrors is specified, then the input must either have no padding or have the correct amount of equal signs.

Enumerator
Base64Encoding 
Base64UrlEncoding 
KeepTrailingEquals 
OmitTrailingEquals 
IgnoreBase64DecodingErrors 
AbortOnBase64DecodingErrors 

Definition at line 95 of file qbytearray.h.

Constructor & Destructor Documentation

◆ QByteArray() [1/7]

constexpr QByteArray::QByteArray ( )
inlineconstexprnoexcept

Constructs an empty byte array.

See also
isEmpty()

Definition at line 502 of file qbytearray.h.

Here is the caller graph for this function:

◆ QByteArray() [2/7]

QByteArray::QByteArray ( const char *  data,
qsizetype  size = -1 
)

Constructs a byte array containing the first size bytes of array data.

If data is 0, a null byte array is constructed.

If size is negative, data is assumed to point to a '\0'-terminated string and its length is determined dynamically.

QByteArray makes a deep copy of the string data.

See also
fromRawData()

Definition at line 1681 of file qbytearray.cpp.

Here is the call graph for this function:

◆ QByteArray() [3/7]

QByteArray::QByteArray ( qsizetype  size,
char  ch 
)

Constructs a byte array of size size with every byte set to ch.

See also
fill()

Definition at line 1705 of file qbytearray.cpp.

Here is the call graph for this function:

◆ QByteArray() [4/7]

QByteArray::QByteArray ( qsizetype  size,
Qt::Initialization   
)

Definition at line 1723 of file qbytearray.cpp.

Here is the call graph for this function:

◆ QByteArray() [5/7]

QByteArray::QByteArray ( const QByteArray other)
inlinenoexcept

Constructs a copy of other.

This operation takes \l{constant time}, because QByteArray is \l{implicitly shared}. This makes returning a QByteArray from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), taking \l{linear time}.

See also
operator=()

Definition at line 534 of file qbytearray.h.

◆ ~QByteArray()

QByteArray::~QByteArray ( )
inline

Destroys the byte array.

Definition at line 503 of file qbytearray.h.

◆ QByteArray() [6/7]

QByteArray::QByteArray ( QByteArray &&  other)
inlinedefaultnoexcept

Move-constructs a QByteArray instance, making it point at the same object that other was pointing to.

Since
5.2

◆ QByteArray() [7/7]

QByteArray::QByteArray ( const DataPointer dd)
inlineexplicit

Definition at line 476 of file qbytearray.h.

Member Function Documentation

◆ append() [1/6]

QByteArray & QByteArray::append ( char  ch)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends the byte ch to this byte array.

Definition at line 1984 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ append() [2/6]

QByteArray & QByteArray::append ( const char *  str)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends the '\0'-terminated string str to this byte array.

Definition at line 251 of file qbytearray.h.

Here is the call graph for this function:

◆ append() [3/6]

QByteArray & QByteArray::append ( const char *  str,
qsizetype  len 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends the first len bytes starting at str to this byte array and returns a reference to this byte array. The bytes appended may include '\0' bytes.

If len is negative, str will be assumed to be a '\0'-terminated string and the length to be copied will be determined automatically using qstrlen().

If len is zero or str is null, nothing is appended to the byte array. Ensure that len is not longer than str.

Definition at line 253 of file qbytearray.h.

Here is the call graph for this function:

◆ append() [4/6]

QByteArray & QByteArray::append ( const QByteArray ba)

Appends the byte array ba onto the end of this byte array.

Example:

This is the same as insert(size(), ba).

Note: QByteArray is an \l{implicitly shared} class. Consequently, if you append to an empty byte array, then the byte array will just share the data held in ba. In this case, no copying of data is done, taking \l{constant time}. If a shared instance is modified, it will be copied (copy-on-write), taking \l{linear time}.

If the byte array being appended to is not empty, a deep copy of the data is performed, taking \l{linear time}.

The append() function is typically very fast (\l{constant time}), because QByteArray preallocates extra space at the end of the data, so it can grow without reallocating the entire array each time.

See also
operator+=(), prepend(), insert()

Definition at line 1930 of file qbytearray.cpp.

Here is the call graph for this function:

◆ append() [5/6]

QByteArray & QByteArray::append ( QByteArrayView  data)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends data to this byte array.

Definition at line 256 of file qbytearray.h.

Here is the call graph for this function:

◆ append() [6/6]

QByteArray & QByteArray::append ( qsizetype  count,
char  ch 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
5.7

Appends count copies of byte ch to this byte array and returns a reference to this byte array.

If count is negative or zero nothing is appended to the byte array.

Definition at line 561 of file qbytearray.h.

Here is the call graph for this function:

◆ at()

char QByteArray::at ( qsizetype  i) const
inline

Returns the byte at index position i in the byte array.

i must be a valid index position in the byte array (i.e., 0 <= i < size()).

See also
operator[]()

Definition at line 505 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ back() [1/2]

char & QByteArray::back ( )
inline
Since
5.10

Returns a reference to the last byte in the byte array. Same as {operator[](size() - 1)}.

This function is provided for STL compatibility.

Warning
Calling this function on an empty byte array constitutes undefined behavior.
See also
front(), at(), operator[]()

Definition at line 560 of file qbytearray.h.

Here is the call graph for this function:

◆ back() [2/2]

char QByteArray::back ( ) const
inline
Since
5.10

Returns the last byte in the byte array. Same as {at(size() - 1)}.

This function is provided for STL compatibility.

Warning
Calling this function on an empty byte array constitutes undefined behavior.
See also
front(), at(), operator[]()

Definition at line 156 of file qbytearray.h.

Here is the caller graph for this function:

◆ begin() [1/2]

QByteArray::iterator QByteArray::begin ( )
inline

Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first byte in the byte-array.

! [iterator-invalidation-func-desc]

Warning
The returned iterator is invalidated on detachment or when the QByteArray is modified. ! [iterator-invalidation-func-desc]
\sa constBegin(), end()

Definition at line 425 of file qbytearray.h.

Here is the caller graph for this function:

◆ begin() [2/2]

const_iterator QByteArray::begin ( ) const
inlinenoexcept

Definition at line 426 of file qbytearray.h.

◆ capacity()

qsizetype QByteArray::capacity ( ) const
inline

Returns the maximum number of bytes that can be stored in the byte array without forcing a reallocation.

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function. If you want to know how many bytes are in the byte array, call size().

Note
a statically allocated byte array will report a capacity of 0, even if it's not empty.
The free space position in the allocated memory block is undefined. In other words, one should not assume that the free memory is always located after the initialized elements.
See also
reserve(), squeeze()

Definition at line 537 of file qbytearray.h.

Here is the caller graph for this function:

◆ cbegin()

QByteArray::const_iterator QByteArray::cbegin ( ) const
inlinenoexcept
Since
5.0

Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first byte in the byte-array.

iterator-invalidation-func-desc

See also
begin(), cend()

Definition at line 427 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cend()

QByteArray::const_iterator QByteArray::cend ( ) const
inlinenoexcept
Since
5.0

Returns a const \l{STL-style iterators}{STL-style iterator} pointing just after the last byte in the byte-array.

iterator-invalidation-func-desc

See also
cbegin(), end()

Definition at line 431 of file qbytearray.h.

Here is the caller graph for this function:

◆ chop()

void QByteArray::chop ( qsizetype  n)

Removes n bytes from the end of the byte array.

If n is greater than size(), the result is an empty byte array.

Example:

See also
truncate(), resize(), first()

Definition at line 1593 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ chopped()

QByteArray QByteArray::chopped ( qsizetype  len) const
inline
Since
5.10

Returns a byte array that contains the leftmost size() - len bytes of this byte array.

Note
The behavior is undefined if len is negative or greater than size().
See also
endsWith(), first(), last(), sliced(), chop(), truncate()

Definition at line 189 of file qbytearray.h.

◆ clear()

void QByteArray::clear ( )

Clears the contents of the byte array and makes it null.

See also
resize(), isNull()

Definition at line 3029 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ compare()

int QByteArray::compare ( QByteArrayView  bv,
Qt::CaseSensitivity  cs = Qt::CaseSensitive 
) const
inlinenoexcept
Since
6.0

Returns an integer less than, equal to, or greater than zero depending on whether this QByteArray sorts before, at the same position as, or after the QByteArrayView bv. The comparison is performed according to case sensitivity cs.

See also
operator==, {Character Case}

Definition at line 569 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ constBegin()

QByteArray::const_iterator QByteArray::constBegin ( ) const
inlinenoexcept

Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first byte in the byte-array.

iterator-invalidation-func-desc

See also
begin(), constEnd()

Definition at line 428 of file qbytearray.h.

Here is the call graph for this function:

◆ constData()

const char * QByteArray::constData ( ) const
inlinenoexcept

Returns a pointer to the const data stored in the byte array. The pointer can be used to access the bytes that compose the array. The data is '\0'-terminated unless the QByteArray object was created from raw data.

pointer-invalidation-desc

This function is mostly useful to pass a byte array to a function that accepts a {const char *}.

Note: A QByteArray can store any byte values including '\0's, but most functions that take {char *} arguments assume that the data ends at the first '\0' they encounter.

See also
data(), operator[](), fromRawData()

Definition at line 144 of file qbytearray.h.

Here is the caller graph for this function:

◆ constEnd()

QByteArray::const_iterator QByteArray::constEnd ( ) const
inlinenoexcept

Returns a const \l{STL-style iterators}{STL-style iterator} pointing just after the last byte in the byte-array.

iterator-invalidation-func-desc

See also
constBegin(), end()

Definition at line 432 of file qbytearray.h.

◆ contains() [1/2]

bool QByteArray::contains ( char  ch) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if the byte array contains the byte ch; otherwise returns false.

Definition at line 565 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ contains() [2/2]

bool QByteArray::contains ( QByteArrayView  bv) const
inline
Since
6.0

Returns true if this byte array contains an occurrence of the sequence of bytes viewed by bv; otherwise returns false.

See also
indexOf(), count()

Definition at line 567 of file qbytearray.h.

Here is the call graph for this function:

◆ count() [1/3]

qsizetype QByteArray::count ( ) const
inlinenoexcept

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as size().

Definition at line 471 of file qbytearray.h.

◆ count() [2/3]

qsizetype QByteArray::count ( char  ch) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns the number of occurrences of byte ch in the byte array.

See also
contains(), indexOf()

Definition at line 2657 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ count() [3/3]

qsizetype QByteArray::count ( QByteArrayView  bv) const
inline
Since
6.0

Returns the number of (potentially overlapping) occurrences of the sequence of bytes viewed by bv in this byte array.

See also
contains(), indexOf()

Definition at line 172 of file qbytearray.h.

Here is the call graph for this function:

◆ crbegin()

QByteArray::const_reverse_iterator QByteArray::crbegin ( ) const
inlinenoexcept
Since
5.6

Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing to the first byte in the byte-array, in reverse order.

iterator-invalidation-func-desc

See also
begin(), rbegin(), rend()

Definition at line 437 of file qbytearray.h.

◆ crend()

QByteArray::const_reverse_iterator QByteArray::crend ( ) const
inlinenoexcept
Since
5.6

Returns a const \l{STL-style iterators}{STL-style} reverse iterator pointing just after the last byte in the byte-array, in reverse order.

iterator-invalidation-func-desc

See also
end(), rend(), rbegin()

Definition at line 438 of file qbytearray.h.

◆ data() [1/2]

char * QByteArray::data ( )
inline

\macro QT_NO_CAST_FROM_BYTEARRAY

Disables automatic conversions from QByteArray to const char * or const void *.

See also
QT_NO_CAST_TO_ASCII, QT_NO_CAST_FROM_ASCII

Returns a pointer to the data stored in the byte array. The pointer can be used to access and modify the bytes that compose the array. The data is '\0'-terminated, i.e. the number of bytes you can access following the returned pointer is size() + 1, including the '\0' terminator.

Example:

pointer-invalidation-desc

For read-only access, constData() is faster because it never causes a \l{deep copy} to occur.

This function is mostly useful to pass a byte array to a function that accepts a {const char *}.

The following example makes a copy of the char* returned by data(), but it will corrupt the heap and cause a crash because it does not allocate a byte for the '\0' at the end:

This one allocates the correct amount of space:

Note: A QByteArray can store any byte values including '\0's, but most functions that take {char *} arguments assume that the data ends at the first '\0' they encounter.

See also
constData(), operator[]()

Definition at line 516 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ data() [2/2]

const char * QByteArray::data ( ) const
inlinenoexcept

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 522 of file qbytearray.h.

Here is the caller graph for this function:

◆ data_ptr()

DataPtr & QByteArray::data_ptr ( )
inline

Definition at line 475 of file qbytearray.h.

◆ detach()

void QByteArray::detach ( )
inline

Definition at line 530 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ end() [1/2]

QByteArray::iterator QByteArray::end ( )
inline

Returns an \l{STL-style iterators}{STL-style iterator} pointing just after the last byte in the byte-array.

iterator-invalidation-func-desc

See also
begin(), constEnd()

Definition at line 429 of file qbytearray.h.

Here is the caller graph for this function:

◆ end() [2/2]

const_iterator QByteArray::end ( ) const
inlinenoexcept

Definition at line 430 of file qbytearray.h.

◆ endsWith() [1/2]

bool QByteArray::endsWith ( char  ch) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if this byte array ends with byte ch; otherwise returns false.

Definition at line 196 of file qbytearray.h.

Here is the caller graph for this function:

◆ endsWith() [2/2]

bool QByteArray::endsWith ( QByteArrayView  bv) const
inline
Since
6.0

Returns true if this byte array ends with the sequence of bytes viewed by bv; otherwise returns false.

Example:

See also
startsWith(), last()

Definition at line 197 of file qbytearray.h.

Here is the call graph for this function:

◆ erase()

Since
6.1

Removes from the byte array the characters in the half-open range [ first , last ). Returns an iterator to the character referred to by last before the erase.

Definition at line 1169 of file qbytearray.cpp.

Here is the call graph for this function:

◆ fill()

QByteArray & QByteArray::fill ( char  ch,
qsizetype  size = -1 
)

Sets every byte in the byte array to ch. If size is different from -1 (the default), the byte array is resized to size size beforehand.

Example:

See also
resize()

Definition at line 1772 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ first()

QByteArray QByteArray::first ( qsizetype  n) const
inline
Since
6.0

Returns the first n bytes of the byte array.

Note
The behavior is undefined when n < 0 or n > size().

Example:

See also
last(), sliced(), startsWith(), chopped(), chop(), truncate()

Definition at line 181 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromBase64()

QByteArray QByteArray::fromBase64 ( const QByteArray base64,
Base64Options  options = Base64Encoding 
)
static
Since
5.2

Returns a decoded copy of the Base64 array base64, using the options defined by options. If options contains {IgnoreBase64DecodingErrors} (the default), the input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters. If options contains {AbortOnBase64DecodingErrors}, then decoding will stop at the first invalid character.

For example:

The algorithm used to decode Base64-encoded data is defined in \l{RFC 4648}.

Returns the decoded data, or, if the {AbortOnBase64DecodingErrors} option was passed and the input data was invalid, an empty byte array.

Note
The fromBase64Encoding() function is recommended in new code.
See also
toBase64(), fromBase64Encoding()

Definition at line 4403 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ fromBase64Encoding() [1/2]

QByteArray::FromBase64Result QByteArray::fromBase64Encoding ( const QByteArray base64,
Base64Options  options = Base64Encoding 
)
static
Since
5.15 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Decodes the Base64 array base64, using the options defined by options. If options contains {IgnoreBase64DecodingErrors} (the default), the input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters. If options contains {AbortOnBase64DecodingErrors}, then decoding will stop at the first invalid character.

For example:

The algorithm used to decode Base64-encoded data is defined in \l{RFC 4648}.

Returns a QByteArrayFromBase64Result object, containing the decoded data and a flag telling whether decoding was successful. If the {AbortOnBase64DecodingErrors} option was passed and the input data was invalid, it is unspecified what the decoded data contains.

See also
toBase64()

Definition at line 4367 of file qbytearray.cpp.

◆ fromBase64Encoding() [2/2]

QByteArray::FromBase64Result QByteArray::fromBase64Encoding ( QByteArray &&  base64,
Base64Options  options = Base64Encoding 
)
static

Definition at line 4350 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ fromHex()

QByteArray QByteArray::fromHex ( const QByteArray hexEncoded)
static

Returns a decoded copy of the hex encoded array hexEncoded. Input is not checked for validity; invalid characters in the input are skipped, enabling the decoding process to continue with subsequent characters.

For example:

See also
toHex()

Definition at line 4421 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromPercentEncoding()

QByteArray QByteArray::fromPercentEncoding ( const QByteArray input,
char  percent = '%' 
)
static
Since
4.4

Returns a decoded copy of the URI/URL-style percent-encoded input. The percent parameter allows you to replace the '' character for another (for instance, '_' or '=').

For example:

Note
Given invalid input (such as a string containing the sequence "%G5", which is not a valid hexadecimal number) the output will be invalid as well. As an example: the sequence "%G5" could be decoded to 'W'.
See also
toPercentEncoding(), QUrl::fromPercentEncoding()

Definition at line 4540 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromRawData()

QByteArray QByteArray::fromRawData ( const char *  data,
qsizetype  size 
)
inlinestatic

Constructs a QByteArray that uses the first size bytes of the data array. The bytes are not copied. The QByteArray will contain the data pointer. The caller guarantees that data will not be deleted or modified as long as this QByteArray and any copies of it exist that have not been modified. In other words, because QByteArray is an \l{implicitly shared} class and the instance returned by this function contains the data pointer, the caller must not delete data or modify it directly as long as the returned QByteArray and any copies exist. However, QByteArray does not take ownership of data, so the QByteArray destructor will never delete the raw data, even when the last QByteArray referring to data is destroyed.

A subsequent attempt to modify the contents of the returned QByteArray or any copy made from it will cause it to create a deep copy of the data array before doing the modification. This ensures that the raw data array itself will never be modified by QByteArray.

Here is an example of how to read data using a QDataStream on raw data in memory without copying the raw data into a QByteArray:

Warning
A byte array created with fromRawData() is not '\0'-terminated, unless the raw data contains a '\0' byte at position size. While that does not matter for QDataStream or functions like indexOf(), passing the byte array to a function accepting a {const char *} expected to be '\0'-terminated will fail.
See also
setRawData(), data(), constData()

Definition at line 396 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fromStdString()

QByteArray QByteArray::fromStdString ( const std::string str)
inlinestatic
Since
5.4

Returns a copy of the str string as a QByteArray.

See also
toStdString(), QString::fromStdString()

Definition at line 605 of file qbytearray.h.

Here is the call graph for this function:

◆ front() [1/2]

char & QByteArray::front ( )
inline
Since
5.10

Returns a reference to the first byte in the byte array. Same as {operator[](0)}.

This function is provided for STL compatibility.

Warning
Calling this function on an empty byte array constitutes undefined behavior.
See also
back(), at(), operator[]()

Definition at line 559 of file qbytearray.h.

Here is the call graph for this function:

◆ front() [2/2]

char QByteArray::front ( ) const
inline
Since
5.10

Returns the first byte in the byte array. Same as {at(0)}.

This function is provided for STL compatibility.

Warning
Calling this function on an empty byte array constitutes undefined behavior.
See also
back(), at(), operator[]()

Definition at line 154 of file qbytearray.h.

Here is the caller graph for this function:

◆ indexOf() [1/2]

qsizetype QByteArray::indexOf ( char  ch,
qsizetype  from = 0 
) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns the index position of the start of the first occurrence of the byte ch in this byte array, searching forward from index position from. Returns -1 if no match is found.

Example:

See also
lastIndexOf(), contains()

Definition at line 2482 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ indexOf() [2/2]

qsizetype QByteArray::indexOf ( QByteArrayView  bv,
qsizetype  from = 0 
) const
inline
Since
6.0

Returns the index position of the start of the first occurrence of the sequence of bytes viewed by bv in this byte array, searching forward from index position from. Returns -1 if no match is found.

Example:

See also
lastIndexOf(), contains(), count()

Definition at line 160 of file qbytearray.h.

Here is the call graph for this function:

◆ insert() [1/6]

QByteArray & QByteArray::insert ( qsizetype  i,
char  ch 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Inserts byte ch at index position i in the byte array.

array-grow-at-insertion

Definition at line 265 of file qbytearray.h.

Here is the call graph for this function:

◆ insert() [2/6]

QByteArray & QByteArray::insert ( qsizetype  i,
const char *  s 
)
inline

Inserts s at index position i and returns a reference to this byte array.

array-grow-at-insertion

The function is equivalent to {insert(i, QByteArrayView(s))}

See also
append(), prepend(), replace(), remove()

Definition at line 260 of file qbytearray.h.

Here is the call graph for this function:

◆ insert() [3/6]

QByteArray & QByteArray::insert ( qsizetype  i,
const char *  data,
qsizetype  len 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.6

Inserts len bytes, starting at data, at position i in the byte array.

array-grow-at-insertion

Definition at line 267 of file qbytearray.h.

Here is the call graph for this function:

◆ insert() [4/6]

QByteArray & QByteArray::insert ( qsizetype  i,
const QByteArray data 
)
inline

Inserts data at index position i and returns a reference to this byte array.

array-grow-at-insertion

See also
append(), prepend(), replace(), remove()

Definition at line 262 of file qbytearray.h.

Here is the call graph for this function:

◆ insert() [5/6]

QByteArray & QByteArray::insert ( qsizetype  i,
QByteArrayView  data 
)
Inserts \a data at index position \a i and returns a
reference to this byte array.

Example:
\snippet code/src_corelib_text_qbytearray.cpp 17
\since 6.0

For large byte arrays, this operation can be slow (\l{linear time}),
because it requires moving all the bytes at indexes \a i and
above by at least one position further in memory.

! [array-grow-at-insertion] This array grows to accommodate the insertion. If i is beyond the end of the array, the array is first extended with space characters to reach this i. ! [array-grow-at-insertion]

\sa append(), prepend(), replace(), remove()

Definition at line 2012 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ insert() [6/6]

QByteArray & QByteArray::insert ( qsizetype  i,
qsizetype  count,
char  ch 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
5.7

Inserts count copies of byte ch at index position i in the byte array.

array-grow-at-insertion

Definition at line 2097 of file qbytearray.cpp.

Here is the call graph for this function:

◆ isDetached()

bool QByteArray::isDetached ( ) const
inline

Definition at line 532 of file qbytearray.h.

Here is the caller graph for this function:

◆ isEmpty()

bool QByteArray::isEmpty ( ) const
inlinenoexcept

Returns true if the byte array has size 0; otherwise returns false.

Example:

See also
size()

Definition at line 129 of file qbytearray.h.

Here is the caller graph for this function:

◆ isLower()

bool QByteArray::isLower ( ) const

Returns true if this byte array is lowercase, that is, if it's identical to its toLower() folding.

Note that this does not mean that the byte array only contains lowercase letters; only that it contains no ASCII uppercase letters.

Since
5.12
See also
isUpper(), toLower()

Definition at line 2783 of file qbytearray.cpp.

Here is the call graph for this function:

◆ isNull()

bool QByteArray::isNull ( ) const
noexcept

Returns true if this byte array is null; otherwise returns false.

Example:

Qt makes a distinction between null byte arrays and empty byte arrays for historical reasons. For most applications, what matters is whether or not a byte array contains any data, and this can be determined using isEmpty().

See also
isEmpty()

Definition at line 3516 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isSharedWith()

bool QByteArray::isSharedWith ( const QByteArray other) const
inlinenoexcept

Definition at line 147 of file qbytearray.h.

Here is the call graph for this function:

◆ isUpper()

bool QByteArray::isUpper ( ) const

Returns true if this byte array is uppercase, that is, if it's identical to its toUpper() folding.

Note that this does not mean that the byte array only contains uppercase letters; only that it contains no ASCII lowercase letters.

Since
5.12
See also
isLower(), toUpper()

Definition at line 2767 of file qbytearray.cpp.

Here is the call graph for this function:

◆ isValidUtf8()

QByteArray::isValidUtf8 ( ) const
inlinenoexcept

Returns true if this byte array contains valid UTF-8 encoded data, or false otherwise.

Since
6.3

Definition at line 203 of file qbytearray.h.

Here is the call graph for this function:

◆ last()

QByteArray QByteArray::last ( qsizetype  n) const
inline
Since
6.0

Returns the last n bytes of the byte array.

Note
The behavior is undefined when n < 0 or n > size().

Example:

See also
first(), sliced(), endsWith(), chopped(), chop(), truncate()

Definition at line 183 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lastIndexOf() [1/3]

qsizetype QByteArray::lastIndexOf ( char  ch,
qsizetype  from = -1 
) const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns the index position of the start of the last occurrence of byte ch in this byte array, searching backward from index position from. If from is -1 (the default), the search starts at the last byte (at index size() - 1). Returns -1 if no match is found.

Example:

See also
indexOf(), contains()

Definition at line 2604 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lastIndexOf() [2/3]

qsizetype QByteArray::lastIndexOf ( QByteArrayView  bv) const
inline
Since
6.2 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns the index position of the start of the last occurrence of the sequence of bytes viewed by bv in this byte array, searching backward from the end of the byte array. Returns -1 if no match is found.

Example:

See also
indexOf(), contains(), count()

Definition at line 164 of file qbytearray.h.

Here is the call graph for this function:

◆ lastIndexOf() [3/3]

qsizetype QByteArray::lastIndexOf ( QByteArrayView  bv,
qsizetype  from 
) const
inline
Since
6.0

Returns the index position of the start of the last occurrence of the sequence of bytes viewed by bv in this byte array, searching backward from index position from. If from is -1, the search starts at the last character; if from is -2, at the next to last character and so on. Returns -1 if no match is found.

Example:

Note
When searching for a 0-length bv, the match at the end of the data is excluded from the search by a negative from, even though {-1} is normally thought of as searching from the end of the byte array: the match at the end is after the last character, so it is excluded. To include such a final empty match, either give a positive value for from or omit the from parameter entirely.
See also
indexOf(), contains(), count()

Definition at line 166 of file qbytearray.h.

Here is the call graph for this function:

◆ left()

QByteArray QByteArray::left ( qsizetype  len) const

Returns a byte array that contains the first len bytes of this byte array.

If you know that len cannot be out of bounds, use first() instead in new code, because it is faster.

The entire byte array is returned if len is greater than size().

Returns an empty QByteArray if len is smaller than 0.

See also
first(), last(), startsWith(), chopped(), chop(), truncate()

Definition at line 2812 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ leftJustified()

QByteArray QByteArray::leftJustified ( qsizetype  width,
char  fill = ' ',
bool  truncate = false 
) const

Returns a byte array of size width that contains this byte array padded with the fill byte.

If truncate is false and the size() of the byte array is more than width, then the returned byte array is a copy of this byte array.

If truncate is true and the size() of the byte array is more than width, then any bytes in a copy of the byte array after position width are removed, and the copy is returned.

Example:

See also
rightJustified()

Definition at line 3460 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ length()

qsizetype QByteArray::length ( ) const
inlinenoexcept

Same as size().

Definition at line 472 of file qbytearray.h.

Here is the caller graph for this function:

◆ mid()

QByteArray QByteArray::mid ( qsizetype  pos,
qsizetype  len = -1 
) const

Returns a byte array containing len bytes from this byte array, starting at position pos.

If you know that pos and len cannot be out of bounds, use sliced() instead in new code, because it is faster.

If len is -1 (the default), or pos + len >= size(), returns a byte array containing all bytes starting at position pos until the end of the byte array.

See also
first(), last(), sliced(), chopped(), chop(), truncate()

Definition at line 2857 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ number() [1/7]

QByteArray QByteArray::number ( double  n,
char  format = 'g',
int  precision = 6 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Returns a byte-array representing the floating-point number n as text.

Returns a byte array containing a string representing n, with a given format and precision, with the same meanings as for \l {QString::number(double, char, int)}. For example:

See also
toDouble(), QLocale::FloatingPointPrecisionOption

Definition at line 4165 of file qbytearray.cpp.

◆ number() [2/7]

QByteArray QByteArray::number ( int  n,
int  base = 10 
)
static

Returns a byte-array representing the whole number n as text.

Returns a byte array containing a string representing n, using the specified base (ten by default). Bases 2 through 36 are supported, using letters for digits beyond 9: A is ten, B is eleven and so on.

Example:

Note
The format of the number is not localized; the default C locale is used regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
setNum(), toInt()

Definition at line 4086 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ number() [3/7]

QByteArray QByteArray::number ( long  n,
int  base = 10 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toLong()

Definition at line 4110 of file qbytearray.cpp.

◆ number() [4/7]

QByteArray QByteArray::number ( qlonglong  n,
int  base = 10 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toLongLong()

Definition at line 4134 of file qbytearray.cpp.

◆ number() [5/7]

QByteArray QByteArray::number ( qulonglong  n,
int  base = 10 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toULongLong()

Definition at line 4146 of file qbytearray.cpp.

◆ number() [6/7]

QByteArray QByteArray::number ( uint  n,
int  base = 10 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toUInt()

Definition at line 4098 of file qbytearray.cpp.

◆ number() [7/7]

QByteArray QByteArray::number ( ulong  n,
int  base = 10 
)
static

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toULong()

Definition at line 4122 of file qbytearray.cpp.

◆ operator const char *()

QByteArray::operator const char * ( ) const
inline

Definition at line 511 of file qbytearray.h.

Here is the call graph for this function:

◆ operator const void *()

QByteArray::operator const void * ( ) const
inline
Note
Use constData() instead in new code.

Returns a pointer to the data stored in the byte array. The pointer can be used to access the bytes that compose the array. The data is '\0'-terminated.

! [pointer-invalidation-desc] The pointer remains valid as long as no detach happens and the QByteArray is not modified. ! [pointer-invalidation-desc]

This operator is mostly useful to pass a byte array to a function
that accepts a \c{const char *}.

You can disable this operator by defining \c
QT_NO_CAST_FROM_BYTEARRAY when you compile your applications.

Note: A QByteArray can store any byte values including '\\0's,
but most functions that take \c{char *} arguments assume that the
data ends at the first '\\0' they encounter.

\sa constData()

Definition at line 513 of file qbytearray.h.

Here is the call graph for this function:

◆ operator!=()

bool QByteArray::operator!= ( const QString str) const
inline

Returns true if this byte array is not equal to the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1418 of file qstring.h.

Here is the call graph for this function:

◆ operator+=() [1/4]

QByteArray & QByteArray::operator+= ( char  ch)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends the byte ch onto the end of this byte array and returns a reference to this byte array.

Definition at line 288 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+=() [2/4]

QByteArray & QByteArray::operator+= ( const char *  str)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Appends the '\0'-terminated string str onto the end of this byte array and returns a reference to this byte array.

Definition at line 290 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+=() [3/4]

QByteArray & QByteArray::operator+= ( const QByteArray ba)
inline

Appends the byte array ba onto the end of this byte array and returns a reference to this byte array.

Example:

Note: QByteArray is an \l{implicitly shared} class. Consequently, if you append to an empty byte array, then the byte array will just share the data held in ba. In this case, no copying of data is done, taking \l{constant time}. If a shared instance is modified, it will be copied (copy-on-write), taking \l{linear time}.

If the byte array being appended to is not empty, a deep copy of the data is performed, taking \l{linear time}.

This operation typically does not suffer from allocation overhead, because QByteArray preallocates extra space at the end of the data so that it may grow without reallocating for each append operation.

See also
append(), prepend()

Definition at line 292 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+=() [4/4]

QByteArray& QByteArray::operator+= ( QByteArrayView  a)
inline

Definition at line 294 of file qbytearray.h.

Here is the call graph for this function:

◆ operator<()

bool QByteArray::operator< ( const QString str) const
inline

Returns true if this byte array is lexically less than the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1420 of file qstring.h.

Here is the call graph for this function:

◆ operator<=()

bool QByteArray::operator<= ( const QString str) const
inline

Returns true if this byte array is lexically less than or equal to the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1424 of file qstring.h.

Here is the call graph for this function:

◆ operator=() [1/2]

QByteArray & QByteArray::operator= ( const char *  str)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Assigns str to this byte array.

Definition at line 1226 of file qbytearray.cpp.

Here is the call graph for this function:

◆ operator=() [2/2]

QByteArray & QByteArray::operator= ( const QByteArray other)
noexcept

Assigns other to this byte array and returns a reference to this byte array.

Definition at line 1213 of file qbytearray.cpp.

Here is the call graph for this function:

◆ operator==()

bool QByteArray::operator== ( const QString str) const
inline

Returns true if this byte array is equal to the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1416 of file qstring.h.

Here is the call graph for this function:

◆ operator>()

bool QByteArray::operator> ( const QString str) const
inline

Returns true if this byte array is lexically greater than the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1422 of file qstring.h.

Here is the call graph for this function:

◆ operator>=()

bool QByteArray::operator>= ( const QString str) const
inline

Returns true if this byte array is greater than or equal to the UTF-8 encoding of str; otherwise returns false.

The comparison is case sensitive.

You can disable this operator by defining QT_NO_CAST_FROM_ASCII when you compile your applications. You then need to call QString::fromUtf8(), QString::fromLatin1(), or QString::fromLocal8Bit() explicitly if you want to convert the byte array to a QString before doing the comparison.

Definition at line 1426 of file qstring.h.

Here is the call graph for this function:

◆ operator[]() [1/2]

char & QByteArray::operator[] ( qsizetype  i)
inline

Returns the byte at index position i as a modifiable reference.

i must be a valid index position in the byte array (i.e., 0 <= i < size()).

Example:

See also
at()

Definition at line 557 of file qbytearray.h.

Here is the call graph for this function:

◆ operator[]() [2/2]

char QByteArray::operator[] ( qsizetype  i) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as at(i).

Definition at line 507 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepend() [1/6]

QByteArray & QByteArray::prepend ( char  ch)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Prepends the byte ch to this byte array.

Definition at line 238 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ prepend() [2/6]

QByteArray & QByteArray::prepend ( const char *  str)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Prepends the '\0'-terminated string str to this byte array.

Definition at line 241 of file qbytearray.h.

Here is the call graph for this function:

◆ prepend() [3/6]

QByteArray & QByteArray::prepend ( const char *  str,
qsizetype  len 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
4.6

Prepends len bytes starting at str to this byte array. The bytes prepended may include '\0' bytes.

Definition at line 243 of file qbytearray.h.

Here is the call graph for this function:

◆ prepend() [4/6]

QByteArray & QByteArray::prepend ( const QByteArray ba)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Prepends ba to this byte array.

Definition at line 1868 of file qbytearray.cpp.

Here is the call graph for this function:

◆ prepend() [5/6]

QByteArray & QByteArray::prepend ( QByteArrayView  ba)
inline

Prepends the byte array view ba to this byte array and returns a reference to this byte array.

This operation is typically very fast (\l{constant time}), because QByteArray preallocates extra space at the beginning of the data, so it can grow without reallocating the entire array each time.

Example:

This is the same as insert(0, ba).

See also
append(), insert()

Definition at line 246 of file qbytearray.h.

Here is the call graph for this function:

◆ prepend() [6/6]

QByteArray & QByteArray::prepend ( qsizetype  count,
char  ch 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
5.7

Prepends count copies of byte ch to this byte array.

Definition at line 563 of file qbytearray.h.

Here is the call graph for this function:

◆ push_back() [1/4]

void QByteArray::push_back ( char  ch)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as append(ch).

Definition at line 448 of file qbytearray.h.

Here is the call graph for this function:

◆ push_back() [2/4]

void QByteArray::push_back ( const char *  str)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as append(str).

Definition at line 450 of file qbytearray.h.

Here is the call graph for this function:

◆ push_back() [3/4]

void QByteArray::push_back ( const QByteArray other)
inline

This function is provided for STL compatibility. It is equivalent to append(other).

Definition at line 452 of file qbytearray.h.

Here is the call graph for this function:

◆ push_back() [4/4]

void QByteArray::push_back ( QByteArrayView  str)
inline
Since
6.0 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as append(str).

Definition at line 454 of file qbytearray.h.

Here is the call graph for this function:

◆ push_front() [1/4]

void QByteArray::push_front ( char  ch)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as prepend(ch).

Definition at line 456 of file qbytearray.h.

Here is the call graph for this function:

◆ push_front() [2/4]

void QByteArray::push_front ( const char *  str)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as prepend(str).

Definition at line 458 of file qbytearray.h.

Here is the call graph for this function:

◆ push_front() [3/4]

void QByteArray::push_front ( const QByteArray other)
inline

This function is provided for STL compatibility. It is equivalent to prepend(other).

Definition at line 460 of file qbytearray.h.

Here is the call graph for this function:

◆ push_front() [4/4]

void QByteArray::push_front ( QByteArrayView  str)
inline
Since
6.0 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Same as prepend(str).

Definition at line 462 of file qbytearray.h.

Here is the call graph for this function:

◆ rbegin() [1/2]

QByteArray::reverse_iterator QByteArray::rbegin ( )
inline
Since
5.6

Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing to the first byte in the byte-array, in reverse order.

iterator-invalidation-func-desc

See also
begin(), crbegin(), rend()

Definition at line 433 of file qbytearray.h.

◆ rbegin() [2/2]

QByteArray::const_reverse_iterator QByteArray::rbegin ( ) const
inlinenoexcept
Since
5.6 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 435 of file qbytearray.h.

◆ remove()

QByteArray & QByteArray::remove ( qsizetype  pos,
qsizetype  len 
)

Removes len bytes from the array, starting at index position pos, and returns a reference to the array.

If pos is out of range, nothing happens. If pos is valid, but pos + len is larger than the size of the array, the array is truncated at position pos.

Example:

Element removal will preserve the array's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze() after the last change to the array's size.

See also
insert(), replace(), squeeze()

Definition at line 2135 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeIf()

template<typename Predicate >
template< typename Predicate > QByteArray & QByteArray::removeIf ( Predicate  pred)
inline
Since
6.1

Removes all bytes for which the predicate pred returns true from the byte array. Returns a reference to the byte array.

See also
remove()

Definition at line 272 of file qbytearray.h.

Here is the call graph for this function:

◆ rend() [1/2]

QByteArray::reverse_iterator QByteArray::rend ( )
inline
Since
5.6

Returns a \l{STL-style iterators}{STL-style} reverse iterator pointing just after the last byte in the byte-array, in reverse order.

iterator-invalidation-func-desc

See also
end(), crend(), rbegin()

Definition at line 434 of file qbytearray.h.

Here is the call graph for this function:

◆ rend() [2/2]

QByteArray::const_reverse_iterator QByteArray::rend ( ) const
inlinenoexcept
Since
5.6 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 436 of file qbytearray.h.

Here is the call graph for this function:

◆ repeated()

QByteArray QByteArray::repeated ( qsizetype  times) const
Since
4.5

Returns a copy of this byte array repeated the specified number of times.

If times is less than 1, an empty byte array is returned.

Example:

Definition at line 2382 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ replace() [1/6]

QByteArray & QByteArray::replace ( char  before,
char  after 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Replaces every occurrence of the byte before with the byte after.

Definition at line 2339 of file qbytearray.cpp.

Here is the call graph for this function:

◆ replace() [2/6]

QByteArray & QByteArray::replace ( char  before,
QByteArrayView  after 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Replaces every occurrence of the byte before with the byte array after.

Definition at line 281 of file qbytearray.h.

◆ replace() [3/6]

QByteArray & QByteArray::replace ( const char *  before,
qsizetype  bsize,
const char *  after,
qsizetype  asize 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Replaces every occurrence of the bsize bytes starting at before with the asize bytes starting at after. Since the sizes of the strings are given by bsize and asize, they may contain '\0' bytes and do not need to be '\0'-terminated.

Definition at line 283 of file qbytearray.h.

◆ replace() [4/6]

QByteArray & QByteArray::replace ( QByteArrayView  before,
QByteArrayView  after 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
6.0

Replaces every occurrence of the byte array before with the byte array after.

Example:

Definition at line 2218 of file qbytearray.cpp.

Here is the call graph for this function:

◆ replace() [5/6]

QByteArray & QByteArray::replace ( qsizetype  pos,
qsizetype  len,
const char *  after,
qsizetype  alen 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Replaces len bytes from index position pos with alen bytes starting at position after. The bytes inserted may include '\0' bytes.

Since
4.7

Definition at line 278 of file qbytearray.h.

Here is the caller graph for this function:

◆ replace() [6/6]

QByteArray & QByteArray::replace ( qsizetype  pos,
qsizetype  len,
QByteArrayView  after 
)

Replaces len bytes from index position pos with the byte array after, and returns a reference to this byte array.

Example:

See also
insert(), remove()

Definition at line 2167 of file qbytearray.cpp.

Here is the call graph for this function:

◆ reserve()

void QByteArray::reserve ( qsizetype  size)
inline

Attempts to allocate memory for at least size bytes.

If you know in advance how large the byte array will be, you can call this function, and if you call resize() often you are likely to get better performance.

If in doubt about how much space shall be needed, it is usually better to use an upper bound as size, or a high estimate of the most likely size, if a strict upper bound would be much bigger than this. If size is an underestimate, the array will grow as needed once the reserved size is exceeded, which may lead to a larger allocation than your best overestimate would have and will slow the operation that triggers it.

Warning
reserve() reserves memory but does not change the size of the byte array. Accessing data beyond the end of the byte array is undefined behavior. If you need to access memory beyond the current end of the array, use resize().

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function.

See also
squeeze(), capacity()

Definition at line 539 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resize()

void QByteArray::resize ( qsizetype  size)

Sets the size of the byte array to size bytes.

If size is greater than the current size, the byte array is extended to make it size bytes with the extra bytes added to the end. The new bytes are uninitialized.

If size is less than the current size, bytes beyond position size are excluded from the byte array.

Note
While resize() will grow the capacity if needed, it never shrinks capacity. To shed excess capacity, use squeeze().
See also
size(), truncate(), squeeze()

Definition at line 1749 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ right()

QByteArray QByteArray::right ( qsizetype  len) const

Returns a byte array that contains the last len bytes of this byte array.

If you know that len cannot be out of bounds, use last() instead in new code, because it is faster.

The entire byte array is returned if len is greater than size().

Returns an empty QByteArray if len is smaller than 0.

See also
endsWith(), last(), first(), sliced(), chopped(), chop(), truncate()

Definition at line 2834 of file qbytearray.cpp.

Here is the call graph for this function:

◆ rightJustified()

QByteArray QByteArray::rightJustified ( qsizetype  width,
char  fill = ' ',
bool  truncate = false 
) const

Returns a byte array of size width that contains the fill byte followed by this byte array.

If truncate is false and the size of the byte array is more than width, then the returned byte array is a copy of this byte array.

If truncate is true and the size of the byte array is more than width, then the resulting byte array is truncated at position width.

Example:

See also
leftJustified()

Definition at line 3497 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setNum() [1/10]

QByteArray & QByteArray::setNum ( double  n,
char  format = 'g',
int  precision = 6 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Represent the floating-point number n as text.

Sets this byte array to a string representing n, with a given format and precision (with the same meanings as for \l {QString::number(double, char, int)}), and returns a reference to this byte array.

See also
toDouble(), QLocale::FloatingPointPrecisionOption

Definition at line 4052 of file qbytearray.cpp.

Here is the call graph for this function:

◆ setNum() [2/10]

QByteArray & QByteArray::setNum ( float  n,
char  format = 'g',
int  precision = 6 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Represent the floating-point number n as text.

Sets this byte array to a string representing n, with a given format and precision (with the same meanings as for \l {QString::number(double, char, int)}), and returns a reference to this byte array.

See also
toFloat()

Definition at line 599 of file qbytearray.h.

Here is the call graph for this function:

◆ setNum() [3/10]

QByteArray & QByteArray::setNum ( int  n,
int  base = 10 
)
inline

Represent the whole number n as text.

Sets this byte array to a string representing n in base base (ten by default) and returns a reference to this byte array. Bases 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

Example:

Note
The format of the number is not localized; the default C locale is used regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number(), toInt()

Definition at line 591 of file qbytearray.h.

Here is the call graph for this function:

◆ setNum() [4/10]

QByteArray & QByteArray::setNum ( long  n,
int  base = 10 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toLong()

Definition at line 595 of file qbytearray.h.

Here is the call graph for this function:

◆ setNum() [5/10]

QByteArray & QByteArray::setNum ( qlonglong  n,
int  base = 10 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toLongLong()

Definition at line 4004 of file qbytearray.cpp.

◆ setNum() [6/10]

QByteArray & QByteArray::setNum ( qulonglong  n,
int  base = 10 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toULongLong()

Definition at line 4029 of file qbytearray.cpp.

◆ setNum() [7/10]

QByteArray & QByteArray::setNum ( short  n,
int  base = 10 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toShort()

Definition at line 587 of file qbytearray.h.

Here is the caller graph for this function:

◆ setNum() [8/10]

QByteArray & QByteArray::setNum ( uint  n,
int  base = 10 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toUInt()

Definition at line 593 of file qbytearray.h.

Here is the call graph for this function:

◆ setNum() [9/10]

QByteArray & QByteArray::setNum ( ulong  n,
int  base = 10 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toULong()

Definition at line 597 of file qbytearray.h.

Here is the call graph for this function:

◆ setNum() [10/10]

QByteArray & QByteArray::setNum ( ushort  n,
int  base = 10 
)
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

See also
toUShort()

Definition at line 589 of file qbytearray.h.

Here is the call graph for this function:

◆ setRawData()

QByteArray & QByteArray::setRawData ( const char *  data,
qsizetype  size 
)
Since
4.7

Resets the QByteArray to use the first size bytes of the data array. The bytes are not copied. The QByteArray will contain the data pointer. The caller guarantees that data will not be deleted or modified as long as this QByteArray and any copies of it exist that have not been modified.

This function can be used instead of fromRawData() to re-use existing QByteArray objects to save memory re-allocations.

See also
fromRawData(), data(), constData()

Definition at line 4239 of file qbytearray.cpp.

Here is the call graph for this function:

◆ shrink_to_fit()

void QByteArray::shrink_to_fit ( )
inline
Since
5.10

This function is provided for STL compatibility. It is equivalent to squeeze().

Definition at line 464 of file qbytearray.h.

◆ simplified() [1/2]

QByteArray QByteArray::simplified ( ) &&
inline

Definition at line 226 of file qbytearray.h.

◆ simplified() [2/2]

QByteArray QByteArray::simplified ( ) const &
inline

Definition at line 224 of file qbytearray.h.

Here is the caller graph for this function:

◆ size()

qsizetype QByteArray::size ( ) const
inlinenoexcept

Returns the number of bytes in this byte array.

The last byte in the byte array is at position size() - 1. In addition, QByteArray ensures that the byte at position size() is always '\0', so that you can use the return value of data() and constData() as arguments to functions that expect '\0'-terminated strings. If the QByteArray object was created from a \l{fromRawData()}{raw data} that didn't include the trailing '\0'-termination byte, then QByteArray doesn't add it automatically unless a \l{deep copy} is created.

Example:

See also
isEmpty(), resize()

Definition at line 470 of file qbytearray.h.

Here is the caller graph for this function:

◆ sliced() [1/2]

QByteArray QByteArray::sliced ( qsizetype  pos) const
inline
Since
6.0 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns a byte array containing the bytes starting at position pos in this object, and extending to the end of this object.

Note
The behavior is undefined when pos < 0 or pos > size().
See also
first(), last(), sliced(), chopped(), chop(), truncate()

Definition at line 185 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sliced() [2/2]

QByteArray QByteArray::sliced ( qsizetype  pos,
qsizetype  n 
) const
inline
Since
6.0

Returns a byte array containing the n bytes of this object starting at position pos.

Note
The behavior is undefined when pos < 0, n < 0, or pos + n > size().

Example:

See also
first(), last(), chopped(), chop(), truncate()

Definition at line 187 of file qbytearray.h.

Here is the call graph for this function:

◆ split()

QList< QByteArray > QByteArray::split ( char  sep) const

Splits the byte array into subarrays wherever sep occurs, and returns the list of those arrays. If sep does not match anywhere in the byte array, split() returns a single-element list containing this byte array.

Definition at line 2358 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ squeeze()

void QByteArray::squeeze ( )
inline

Releases any memory not required to store the array's data.

The sole purpose of this function is to provide a means of fine tuning QByteArray's memory usage. In general, you will rarely ever need to call this function.

See also
reserve(), capacity()

Definition at line 547 of file qbytearray.h.

Here is the call graph for this function:

◆ startsWith() [1/2]

bool QByteArray::startsWith ( char  ch) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if this byte array starts with byte ch; otherwise returns false.

Definition at line 194 of file qbytearray.h.

◆ startsWith() [2/2]

bool QByteArray::startsWith ( QByteArrayView  bv) const
inline
Since
6.0

Returns true if this byte array starts with the sequence of bytes viewed by bv; otherwise returns false.

Example:

See also
endsWith(), first()

Definition at line 192 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ swap()

void QByteArray::swap ( QByteArray other)
inlinenoexcept
Since
4.8

Swaps byte array other with this byte array. This operation is very fast and never fails.

Definition at line 126 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toBase64()

QByteArray QByteArray::toBase64 ( Base64Options  options = Base64Encoding) const
Since
5.2

Returns a copy of the byte array, encoded using the options options.

The algorithm used to encode Base64-encoded data is defined in \l{RFC 4648}.

See also
fromBase64()

Definition at line 3872 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ toDouble()

double QByteArray::toDouble ( bool *  ok = nullptr) const

Returns the byte array converted to a double value.

Returns an infinity if the conversion overflows or 0.0 if the conversion fails for other reasons (e.g. underflow).

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Warning
The QByteArray content may only contain valid numerical characters which includes the plus/minus sign, the character e used in scientific notation, and the decimal point. Including the unit or additional characters leads to a conversion error.
Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.

This function ignores leading and trailing whitespace.

See also
number()

Definition at line 3804 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toFloat()

float QByteArray::toFloat ( bool *  ok = nullptr) const

Returns the byte array converted to a float value.

Returns an infinity if the conversion overflows or 0.0 if the conversion fails for other reasons (e.g. underflow).

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Warning
The QByteArray content may only contain valid numerical characters which includes the plus/minus sign, the character e used in scientific notation, and the decimal point. Including the unit or additional characters leads to a conversion error.
Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.

This function ignores leading and trailing whitespace.

See also
number()

Definition at line 3845 of file qbytearray.cpp.

Here is the call graph for this function:

◆ toHex()

QByteArray QByteArray::toHex ( char  separator = '\0') const

Returns a hex encoded copy of the byte array.

The hex encoding uses the numbers 0-9 and the letters a-f.

If separator is not '\0', the separator character is inserted between the hex bytes.

Example:

Since
5.9
See also
fromHex()

Definition at line 4460 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toInt()

int QByteArray::toInt ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to an int using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3635 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toLong()

long QByteArray::toLong ( bool *  ok = nullptr,
int  base = 10 
) const
Since
4.1

Returns the byte array converted to a long int using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3692 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toLongLong()

qlonglong QByteArray::toLongLong ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to a {long long} using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3579 of file qbytearray.cpp.

Here is the call graph for this function:

◆ toLower() [1/2]

QByteArray QByteArray::toLower ( ) &&
inline

Definition at line 214 of file qbytearray.h.

◆ toLower() [2/2]

QByteArray QByteArray::toLower ( ) const &
inline

Definition at line 212 of file qbytearray.h.

Here is the caller graph for this function:

◆ toPercentEncoding()

QByteArray QByteArray::toPercentEncoding ( const QByteArray exclude = QByteArray(),
const QByteArray include = QByteArray(),
char  percent = '%' 
) const
Since
4.4

Returns a URI/URL-style percent-encoded copy of this byte array. The percent parameter allows you to override the default '' character for another.

By default, this function will encode all bytes that are not one of the following:

ALPHA ("a" to "z" and "A" to "Z") / DIGIT (0 to 9) / "-" / "." / "_" / "~"

To prevent bytes from being encoded pass them to exclude. To force bytes to be encoded pass them to include. The percent character is always encoded.

Example:

The hex encoding uses the numbers 0-9 and the uppercase letters A-F.

See also
fromPercentEncoding(), QUrl::toPercentEncoding()

Definition at line 4660 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toShort()

short QByteArray::toShort ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to a short using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; otherwise, if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3747 of file qbytearray.cpp.

Here is the call graph for this function:

◆ toStdString()

std::string QByteArray::toStdString ( ) const
inline
Since
5.4

Returns a std::string object with the data contained in this QByteArray.

This operator is mostly useful to pass a QByteArray to a function that accepts a std::string object.

See also
fromStdString(), QString::toStdString()

Definition at line 602 of file qbytearray.h.

Here is the call graph for this function:

◆ toUInt()

uint QByteArray::toUInt ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to an {unsigned int} using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3662 of file qbytearray.cpp.

Here is the call graph for this function:

◆ toULong()

ulong QByteArray::toULong ( bool *  ok = nullptr,
int  base = 10 
) const
Since
4.1

Returns the byte array converted to an {unsigned long int} using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3720 of file qbytearray.cpp.

Here is the call graph for this function:

◆ toULongLong()

qulonglong QByteArray::toULongLong ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to an {unsigned long long} using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal (base 16); otherwise, if it begins with "0", it is assumed to be octal (base 8); otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3606 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toUpper() [1/2]

QByteArray QByteArray::toUpper ( ) &&
inline

Definition at line 218 of file qbytearray.h.

◆ toUpper() [2/2]

QByteArray QByteArray::toUpper ( ) const &
inline

Definition at line 216 of file qbytearray.h.

Here is the caller graph for this function:

◆ toUShort()

ushort QByteArray::toUShort ( bool *  ok = nullptr,
int  base = 10 
) const

Returns the byte array converted to an {unsigned short} using base base, which is ten by default. Bases 0 and 2 through 36 are supported, using letters for digits beyond 9; A is ten, B is eleven and so on.

If base is 0, the base is determined automatically using the following rules: If the byte array begins with "0x", it is assumed to be hexadecimal; otherwise, if it begins with "0", it is assumed to be octal; otherwise it is assumed to be decimal.

Returns 0 if the conversion fails.

If ok is not \nullptr, failure is reported by setting *{ok} to false, and success by setting *{ok} to true.

Note
The conversion of the number is performed in the default C locale, regardless of the user's locale. Use QLocale to perform locale-aware conversions between numbers and strings.
See also
number()

Definition at line 3774 of file qbytearray.cpp.

Here is the call graph for this function:

◆ trimmed() [1/2]

QByteArray QByteArray::trimmed ( ) &&
inline

Definition at line 222 of file qbytearray.h.

◆ trimmed() [2/2]

QByteArray QByteArray::trimmed ( ) const &
inline

Definition at line 220 of file qbytearray.h.

Here is the caller graph for this function:

◆ truncate()

void QByteArray::truncate ( qsizetype  pos)

Truncates the byte array at index position pos.

If pos is beyond the end of the array, nothing happens.

Example:

See also
chop(), resize(), first()

Definition at line 1574 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ data()

char * data ( )
related

\macro QT_NO_CAST_FROM_BYTEARRAY

Disables automatic conversions from QByteArray to const char * or const void *.

See also
QT_NO_CAST_TO_ASCII, QT_NO_CAST_FROM_ASCII

Returns a pointer to the data stored in the byte array. The pointer can be used to access and modify the bytes that compose the array. The data is '\0'-terminated, i.e. the number of bytes you can access following the returned pointer is size() + 1, including the '\0' terminator.

Example:

pointer-invalidation-desc

For read-only access, constData() is faster because it never causes a \l{deep copy} to occur.

This function is mostly useful to pass a byte array to a function that accepts a {const char *}.

The following example makes a copy of the char* returned by data(), but it will corrupt the heap and cause a crash because it does not allocate a byte for the '\0' at the end:

This one allocates the correct amount of space:

Note: A QByteArray can store any byte values including '\0's, but most functions that take {char *} arguments assume that the data ends at the first '\0' they encounter.

See also
constData(), operator[]()

Definition at line 206 of file qopengles2ext.h.

Here is the caller graph for this function:

◆ erase()

template< typename T > qsizetype erase ( QByteArray ba,
const T t 
)
related
Since
6.1

Removes all elements that compare equal to t from the byte array ba. Returns the number of elements removed, if any.

See also
erase_if

Definition at line 670 of file qbytearray.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ erase_if()

template< typename Predicate > qsizetype erase_if ( QByteArray ba,
Predicate  pred 
)
related
Since
6.1

Removes all elements for which the predicate pred returns true from the byte array ba. Returns the number of elements removed, if any.

See also
erase

Definition at line 676 of file qbytearray.h.

Here is the call graph for this function:

◆ operator!= [1/5]

bool QByteArray::operator!= ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is not equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 319 of file qbytearray.h.

◆ operator!= [2/5]

bool QByteArray::operator!= ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is not equal to the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 317 of file qbytearray.h.

◆ operator!= [3/5]

bool QByteArray::operator!= ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is not equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 315 of file qbytearray.h.

◆ operator!= [4/5]

bool operator!= ( const QByteArray a1,
std::nullptr_t   
)
friend

Definition at line 348 of file qbytearray.h.

◆ operator!= [5/5]

bool operator!= ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 355 of file qbytearray.h.

◆ operator""_qba()

operator""_qba ( const char *  str,
size_t  size 
)
related

\macro QByteArrayLiteral(ba)

The macro generates the data for a QByteArray out of the string literal ba at compile time. Creating a QByteArray from it is free in this case, and the generated byte array data is stored in the read-only segment of the compiled object file.

For instance:

Using QByteArrayLiteral instead of a double quoted plain C++ string literal can significantly speed up creation of QByteArray instances from data known at compile time.

See also
QStringLiteral
Since
6.2

Literal operator that creates a QByteArray out of the first size characters in the char string literal str.

The QByteArray is created at compile time, and the generated string data is stored in the read-only segment of the compiled object file. Duplicate literals may share the same read-only memory. This functionality is interchangeable with QByteArrayLiteral, but saves typing when many string literals are present in the code.

The following code creates a QByteArray:

auto str = "hello"_qba;
QString str
[2]
See also
QByteArrayLiteral, QtLiterals::operator""_qs(const char16_t *str, size_t size)

Definition at line 690 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+() [1/5]

const QByteArray operator+ ( char  a1,
const QByteArray a2 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns a byte array that is the result of concatenating byte a1 and byte array a2.

Definition at line 583 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+() [2/5]

const QByteArray operator+ ( const char *  a1,
const QByteArray a2 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns a byte array that is the result of concatenating '\0'-terminated string a1 and byte array a2.

Definition at line 581 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+() [3/5]

const QByteArray operator+ ( const QByteArray a1,
char  a2 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns a byte array that is the result of concatenating byte array a1 and byte a2.

Definition at line 579 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+() [4/5]

const QByteArray operator+ ( const QByteArray a1,
const char *  a2 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns a byte array that is the result of concatenating byte array a1 and '\0'-terminated string a2.

Definition at line 577 of file qbytearray.h.

Here is the call graph for this function:

◆ operator+() [5/5]

const QByteArray operator+ ( const QByteArray a1,
const QByteArray a2 
)
related

Returns a byte array that is the result of concatenating byte array a1 and byte array a2.

See also
QByteArray::operator+=()

Definition at line 575 of file qbytearray.h.

Here is the call graph for this function:

◆ operator< [1/5]

bool QByteArray::operator< ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is lexically less than byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 325 of file qbytearray.h.

◆ operator< [2/5]

bool operator< ( const QByteArray ,
std::nullptr_t   
)
friend

Definition at line 349 of file qbytearray.h.

◆ operator< [3/5]

bool QByteArray::operator< ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically less than the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 323 of file qbytearray.h.

◆ operator< [4/5]

bool QByteArray::operator< ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically less than byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 321 of file qbytearray.h.

◆ operator< [5/5]

bool operator< ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 356 of file qbytearray.h.

◆ operator<<()

QDataStream & operator<< ( QDataStream out,
const QByteArray ba 
)
related

Writes byte array ba to the stream out and returns a reference to the stream.

See also
{Serializing Qt Data Types}

Definition at line 3044 of file qbytearray.cpp.

Here is the call graph for this function:

◆ operator<= [1/5]

bool QByteArray::operator<= ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is lexically less than or equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 331 of file qbytearray.h.

◆ operator<= [2/5]

bool QByteArray::operator<= ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically less than or equal to the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 329 of file qbytearray.h.

◆ operator<= [3/5]

bool QByteArray::operator<= ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically less than or equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 327 of file qbytearray.h.

◆ operator<= [4/5]

bool operator<= ( const QByteArray a1,
std::nullptr_t   
)
friend

Definition at line 351 of file qbytearray.h.

◆ operator<= [5/5]

bool operator<= ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 358 of file qbytearray.h.

◆ operator== [1/5]

bool QByteArray::operator== ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 313 of file qbytearray.h.

◆ operator== [2/5]

bool QByteArray::operator== ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is equal to the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 311 of file qbytearray.h.

◆ operator== [3/5]

bool QByteArray::operator== ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 309 of file qbytearray.h.

◆ operator== [4/5]

bool operator== ( const QByteArray a1,
std::nullptr_t   
)
friend

Definition at line 347 of file qbytearray.h.

◆ operator== [5/5]

bool operator== ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 354 of file qbytearray.h.

◆ operator> [1/5]

bool QByteArray::operator> ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is lexically greater than byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 337 of file qbytearray.h.

◆ operator> [2/5]

bool QByteArray::operator> ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically greater than the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 335 of file qbytearray.h.

◆ operator> [3/5]

bool QByteArray::operator> ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically greater than byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 333 of file qbytearray.h.

◆ operator> [4/5]

bool operator> ( const QByteArray a1,
std::nullptr_t   
)
friend

Definition at line 350 of file qbytearray.h.

◆ operator> [5/5]

bool operator> ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 357 of file qbytearray.h.

◆ operator>= [1/5]

bool QByteArray::operator>= ( const char *  a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if '\0'-terminated string a1 is lexically greater than or equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 343 of file qbytearray.h.

◆ operator>= [2/5]

bool operator>= ( const QByteArray ,
std::nullptr_t   
)
friend

Definition at line 352 of file qbytearray.h.

◆ operator>= [3/5]

bool QByteArray::operator>= ( const QByteArray a1,
const char *  a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically greater than or equal to the '\0'-terminated string a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 341 of file qbytearray.h.

◆ operator>= [4/5]

bool QByteArray::operator>= ( const QByteArray a1,
const QByteArray a2 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Returns true if byte array a1 is lexically greater than or equal to byte array a2; otherwise returns false.

See also
QByteArray::compare()

Definition at line 339 of file qbytearray.h.

◆ operator>= [5/5]

bool operator>= ( std::nullptr_t  ,
const QByteArray a2 
)
friend

Definition at line 359 of file qbytearray.h.

◆ operator>>()

QDataStream & operator>> ( QDataStream in,
QByteArray ba 
)
related

Reads a byte array into ba from the stream in and returns a reference to the stream.

See also
{Serializing Qt Data Types}

Definition at line 3061 of file qbytearray.cpp.

Here is the call graph for this function:

◆ qChecksum()

quint16 qChecksum ( QByteArrayView  data,
Qt::ChecksumType  standard 
)
related
Since
5.9

Returns the CRC-16 checksum of data.

The checksum is independent of the byte order (endianness) and will be calculated accorded to the algorithm published in standard. By default the algorithm published in ISO 3309 (Qt::ChecksumIso3309) is used.

Note
This function is a 16-bit cache conserving (16 entry table) implementation of the CRC-16-CCITT algorithm.

Definition at line 497 of file qbytearray.cpp.

◆ qCompress() [1/2]

QByteArray qCompress ( const QByteArray data,
int  compressionLevel 
)
related

Compresses the data byte array and returns the compressed data in a new byte array.

The compressionLevel parameter specifies how much compression should be used. Valid values are between 0 and 9, with 9 corresponding to the greatest compression (i.e. smaller compressed data) at the cost of using a slower algorithm. Smaller values (8, 7, ..., 1) provide successively less compression at slightly faster speeds. The value 0 corresponds to no compression at all. The default value is -1, which specifies zlib's default compression.

See also
qUncompress(const QByteArray &data)

Definition at line 616 of file qbytearray.h.

◆ qCompress() [2/2]

QByteArray qCompress ( const uchar data,
qsizetype  nbytes,
int  compressionLevel 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Compresses the first nbytes of data at compression level compressionLevel and returns the compressed data in a new byte array.

Definition at line 556 of file qbytearray.cpp.

Here is the call graph for this function:

◆ qsnprintf()

int qsnprintf ( char *  str,
size_t  n,
const char *  fmt,
  ... 
)
related

\target bytearray-qsnprintf

A portable snprintf() function, calls qvsnprintf.

fmt is the printf() format string. The result is put into str, which is a buffer of at least n bytes.

Warning
Call this function only when you know what you are doing since it shows different behavior on certain platforms. Use QString::asprintf() to format a string instead.
See also
qvsnprintf(), QString::asprintf()

Definition at line 118 of file qvsnprintf.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstrcmp()

int qstrcmp ( const char *  str1,
const char *  str2 
)
related

A safe strcmp() function.

Compares str1 and str2. Returns a negative value if str1 is less than str2, 0 if str1 is equal to str2 or a positive value if str1 is greater than str2.

If both strings are \nullptr, they are deemed equal; otherwise, if either is \nullptr, it is treated as less than the other (even if the other is an empty string).

See also
qstrncmp(), qstricmp(), qstrnicmp(), {Character Case}, QByteArray::compare()

Definition at line 215 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstrcpy()

char * qstrcpy ( char *  dst,
const char *  src 
)
related

Copies all the characters up to and including the '\0' from src into dst and returns a pointer to dst. If src is \nullptr, it immediately returns \nullptr.

This function assumes that dst is large enough to hold the contents of src.

Note
If dst and src overlap, the behavior is undefined.
See also
qstrncpy()

Definition at line 128 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstrdup()

char * qstrdup ( const char *  src)
related

Returns a duplicate string.

Allocates space for a copy of src, copies it, and returns a pointer to the copy. If src is \nullptr, it immediately returns \nullptr.

Ownership is passed to the caller, so the returned string must be deleted using delete[].

Definition at line 106 of file qbytearray.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstricmp()

int qstricmp ( const char *  str1,
const char *  str2 
)
related

A safe stricmp() function.

Compares str1 and str2, ignoring differences in the case of any ASCII characters.

Returns a negative value if str1 is less than str2, 0 if str1 is equal to str2 or a positive value if str1 is greater than str2.

If both strings are \nullptr, they are deemed equal; otherwise, if either is \nullptr, it is treated as less than the other (even if the other is an empty string).

See also
qstrcmp(), qstrncmp(), qstrnicmp(), {Character Case}, QByteArray::compare()

Definition at line 260 of file qbytearray.cpp.

◆ QString

friend class QString
friend

Definition at line 496 of file qbytearray.h.

◆ qstrlen()

size_t qstrlen ( const char *  str)
related

A safe strlen() function.

Returns the number of characters that precede the terminating '\0', or 0 if str is \nullptr.

See also
qstrnlen()

Definition at line 134 of file qbytearrayalgorithms.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstrncmp()

int qstrncmp ( const char *  str1,
const char *  str2,
size_t  len 
)
related

A safe strncmp() function.

Compares at most len bytes of str1 and str2.

Returns a negative value if str1 is less than str2, 0 if str1 is equal to str2 or a positive value if str1 is greater than str2.

If both strings are \nullptr, they are deemed equal; otherwise, if either is \nullptr, it is treated as less than the other (even if the other is an empty string or len is 0).

See also
qstrcmp(), qstricmp(), qstrnicmp(), {Character Case}, QByteArray::compare()

Definition at line 160 of file qbytearrayalgorithms.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ qstrncpy()

char * qstrncpy ( char *  dst,
const char *  src,
size_t  len 
)
related

A safe strncpy() function.

Copies at most len bytes from src (stopping at len or the terminating '\0' whichever comes first) into dst and returns a pointer to dst. Guarantees that dst is '\0'-terminated. If src or dst is \nullptr, returns \nullptr immediately.

This function assumes that dst is at least len characters long.

Note
If dst and src overlap, the behavior is undefined.
See also
qstrcpy()

Definition at line 161 of file qbytearray.cpp.

◆ qstrnicmp()

int qstrnicmp ( const char *  str1,
const char *  str2,
size_t  len 
)
related

A safe strnicmp() function.

Compares at most len bytes of str1 and str2, ignoring differences in the case of any ASCII characters.

Returns a negative value if str1 is less than str2, 0 if str1 is equal to str2 or a positive value if str1 is greater than str2.

If both strings are \nullptr, they are deemed equal; otherwise, if either is \nullptr, it is treated as less than the other (even if the other is an empty string or len is 0).

See also
qstrcmp(), qstrncmp(), qstricmp(), {Character Case}, QByteArray::compare()

Definition at line 350 of file qbytearray.cpp.

Here is the caller graph for this function:

◆ qstrnlen()

size_t qstrnlen ( const char *  str,
size_t  maxlen 
)
related
Since
4.2

A safe strnlen() function.

Returns the number of characters that precede the terminating '\0', but at most maxlen. If str is \nullptr, returns 0.

See also
qstrlen()

Definition at line 146 of file qbytearrayalgorithms.h.

◆ qUncompress() [1/3]

QByteArray qUncompress ( const QByteArray data)
related

Uncompresses the data byte array and returns a new byte array with the uncompressed data.

Returns an empty QByteArray if the input data was corrupt.

This function will uncompress data compressed with qCompress() from this and any earlier Qt version, back to Qt 3.1 when this feature was added.

{Note:} If you want to use this function to uncompress external data that was compressed using zlib, you first need to prepend a four byte header to the byte array containing the data. The header must contain the expected length (in bytes) of the uncompressed data, expressed as an unsigned, big-endian, 32-bit integer.

See also
qCompress()

Definition at line 618 of file qbytearray.h.

◆ qUncompress() [2/3]

QByteArray qUncompress ( const uchar data,
qsizetype  nbytes 
)
related

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Uncompresses the first nbytes of data and returns a new byte array with the uncompressed data.

Definition at line 634 of file qbytearray.cpp.

◆ qUncompress [3/3]

QByteArray qUncompress ( const uchar data,
qsizetype  nbytes 
)
friend

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Uncompresses the first nbytes of data and returns a new byte array with the uncompressed data.

Definition at line 634 of file qbytearray.cpp.

◆ qvsnprintf()

QT_BEGIN_NAMESPACE int qvsnprintf ( char *  str,
size_t  n,
const char *  fmt,
va_list  ap 
)
related

A portable vsnprintf() function. Will call ::vsnprintf(), ::_vsnprintf(), or ::vsnprintf_s depending on the system, or fall back to an internal version.

fmt is the printf() format string. The result is put into str, which is a buffer of at least n bytes.

The caller is responsible to call va_end() on ap.

Warning
Since vsnprintf() shows different behavior on certain platforms, you should not rely on the return value or on the fact that you will always get a 0 terminated string back.

Ideally, you should never call this function but use QString::asprintf() instead.

See also
qsnprintf(), QString::asprintf()

Definition at line 73 of file qvsnprintf.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: