このページでは

QByteArray Class

QByteArray クラスは、バイトの配列を提供します。詳細...

ヘッダー: #include <QByteArray>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数は再入可能です。

QByteArray の比較

カテゴリ比較可能な型説明
strongQByteArray
strongconst char *.
strongQChar、char16_t、QString 、QStringView 、QLatin1StringView 、およびQUtf8StringView です。文字列型と比較する場合、その内容は UTF-8 として解釈されます。

パブリック型

class FromBase64Result
enum Base64Option { Base64Encoding, Base64UrlEncoding, KeepTrailingEquals, OmitTrailingEquals, IgnoreBase64DecodingErrors, AbortOnBase64DecodingErrors }
flags Base64Options
const_iterator
const_reverse_iterator
iterator
reverse_iterator

パブリック関数

QByteArray()
(since 6.8) QByteArray(QByteArrayViewv)
QByteArray(const char*data, qsizetypesize= -1)
QByteArray(qsizetypesize, Qt::Initialization)
QByteArray(qsizetypesize, charch)
QByteArray(const QByteArray&other)
QByteArray(QByteArray&&other)
~QByteArray()
QByteArray &append(const QByteArray&ba)
QByteArray &append(QByteArrayViewdata)
QByteArray &append(charch)
QByteArray &append(const char*str)
QByteArray &append(const char*str, qsizetypelen)
QByteArray &append(qsizetypecount, charch)
(since 6.6) QByteArray &assign(QByteArrayViewv)
(since 6.6) QByteArray &assign(InputIteratorfirst, InputIteratorlast)
(since 6.6) QByteArray &assign(qsizetypen, charc)
char at(qsizetypei) const
char &back()
char back() const
QByteArray::iterator begin()
QByteArray::const_iterator begin() const
qsizetype capacity() const
QByteArray::const_iterator cbegin() const
QByteArray::const_iterator cend() const
void chop(qsizetypen)
QByteArray chopped(qsizetypelen) &&
QByteArray chopped(qsizetypelen) const &
void clear()
(since 6.0) int compare(QByteArrayViewbv, Qt::CaseSensitivitycs= Qt::CaseSensitive) const
QByteArray::const_iterator constBegin() const
const char *constData() const
QByteArray::const_iterator constEnd() const
(since 6.0) bool contains(QByteArrayViewbv) const
bool contains(charch) const
(since 6.0) qsizetype count(QByteArrayViewbv) const
qsizetype count(charch) const
QByteArray::const_reverse_iterator crbegin() const
QByteArray::const_reverse_iterator crend() const
char *data()
const char *data() const
QByteArray::iterator end()
QByteArray::const_iterator end() const
(since 6.0) bool endsWith(QByteArrayViewbv) const
bool endsWith(charch) const
(since 6.1) QByteArray::iterator erase(QByteArray::const_iteratorfirst, QByteArray::const_iteratorlast)
(since 6.5) QByteArray::iterator erase(QByteArray::const_iteratorit)
QByteArray &fill(charch, qsizetypesize= -1)
(since 6.0) QByteArray first(qsizetypen) &&
(since 6.0) QByteArray first(qsizetypen) const &
char &front()
char front() const
(since 6.0) qsizetype indexOf(QByteArrayViewbv, qsizetypefrom= 0) const
qsizetype indexOf(charch, qsizetypefrom= 0) const
(since 6.0) QByteArray &insert(qsizetypei, QByteArrayViewdata)
QByteArray &insert(qsizetypei, const QByteArray&data)
QByteArray &insert(qsizetypei, const char*s)
QByteArray &insert(qsizetypei, charch)
QByteArray &insert(qsizetypei, const char*data, qsizetypelen)
QByteArray &insert(qsizetypei, qsizetypecount, charch)
bool isEmpty() const
bool isLower() const
bool isNull() const
bool isUpper() const
(since 6.3) bool isValidUtf8() const
(since 6.0) QByteArray last(qsizetypen) &&
(since 6.0) QByteArray last(qsizetypen) const &
(since 6.0) qsizetype lastIndexOf(QByteArrayViewbv, qsizetypefrom) const
(since 6.2) qsizetype lastIndexOf(QByteArrayViewbv) const
qsizetype lastIndexOf(charch, qsizetypefrom= -1) const
QByteArray left(qsizetypelen) &&
QByteArray left(qsizetypelen) const &
QByteArray leftJustified(qsizetypewidth, charfill= ' ', booltruncate= false) const
qsizetype length() const
(since 6.8) qsizetype max_size() const
QByteArray mid(qsizetypepos, qsizetypelen= -1) &&
QByteArray mid(qsizetypepos, qsizetypelen= -1) const &
(since 6.10) QByteArray &nullTerminate()
(since 6.10) QByteArray nullTerminated() &&
(since 6.10) QByteArray nullTerminated() const &
(since 6.4) QByteArray percentDecoded(charpercent= '%') const &
(since 6.11) QByteArray percentDecoded(charpercent= '%') &&
QByteArray &prepend(QByteArrayViewba)
QByteArray &prepend(charch)
QByteArray &prepend(const QByteArray&ba)
QByteArray &prepend(const char*str)
QByteArray &prepend(const char*str, qsizetypelen)
QByteArray &prepend(qsizetypecount, charch)
void push_back(const QByteArray&other)
(since 6.0) void push_back(QByteArrayViewstr)
void push_back(charch)
void push_back(const char*str)
void push_front(const QByteArray&other)
(since 6.0) void push_front(QByteArrayViewstr)
void push_front(charch)
void push_front(const char*str)
QByteArray::reverse_iterator rbegin()
QByteArray::const_reverse_iterator rbegin() const
QByteArray &remove(qsizetypepos, qsizetypelen)
(since 6.5) QByteArray &removeAt(qsizetypepos)
(since 6.5) QByteArray &removeFirst()
(since 6.1) QByteArray &removeIf(述語pred)
(since 6.5) QByteArray &removeLast()
QByteArray::reverse_iterator rend()
QByteArray::const_reverse_iterator rend() const
QByteArray repeated(qsizetypetimes) const
QByteArray &replace(qsizetypepos, qsizetypelen, QByteArrayViewafter)
(since 6.0) QByteArray &replace(QByteArrayViewbefore, QByteArrayViewafter)
QByteArray &replace(charbefore, QByteArrayViewafter)
QByteArray &replace(charbefore, charafter)
QByteArray &replace(const char*before, qsizetypebsize, const char*after, qsizetypeasize)
QByteArray &replace(qsizetypepos, qsizetypelen, const char*after, qsizetypealen)
void reserve(qsizetypesize)
void resize(qsizetypesize)
(since 6.4) void resize(qsizetypenewSize, charc)
(since 6.8) void resizeForOverwrite(qsizetypesize)
QByteArray right(qsizetypelen) &&
QByteArray right(qsizetypelen) const &
QByteArray rightJustified(qsizetypewidth, charfill= ' ', booltruncate= false) const
QByteArray &setNum(intn, intbase= 10)
QByteArray &setNum(longn, intbase= 10)
QByteArray &setNum(qlonglongn, intbase= 10)
QByteArray &setNum(qulonglongn, intbase= 10)
QByteArray &setNum(shortn, intbase= 10)
QByteArray &setNum(uintn, intbase= 10)
QByteArray &setNum(ulongn, intbase= 10)
QByteArray &setNum(ushortn, intbase= 10)
QByteArray &setNum(doublen, charformat= 'g', intprecision= 6)
QByteArray &setNum(floatn, charformat= 'g', intprecision= 6)
QByteArray &setRawData(const char*data, qsizetypesize)
void shrink_to_fit()
QByteArray simplified() const
qsizetype size() const
(since 6.8) QByteArray &slice(qsizetypepos, qsizetypen)
(since 6.8) QByteArray &slice(qsizetypepos)
(since 6.0) QByteArray sliced(qsizetypepos, qsizetypen) &&
(since 6.0) QByteArray sliced(qsizetypepos, qsizetypen) const &
(since 6.0) QByteArray sliced(qsizetypepos) &&
(since 6.0) QByteArray sliced(qsizetypepos) const &
QList<QByteArray> split(charsep) const
void squeeze()
(since 6.0) bool startsWith(QByteArrayViewbv) const
bool startsWith(charch) const
void swap(QByteArray&other)
QByteArray toBase64(QByteArray::Base64Optionsoptions= Base64Encoding) const
CFDataRef toCFData() const
double toDouble(bool*ok= nullptr) const
(since 6.5) emscripten::val toEcmaUint8Array()
float toFloat(bool*ok= nullptr) const
QByteArray toHex(charseparator= '\0') const
int toInt(bool*ok= nullptr, intbase= 10) const
long toLong(bool*ok= nullptr, intbase= 10) const
qlonglong toLongLong(bool*ok= nullptr, intbase= 10) const
QByteArray toLower() const
NSData *toNSData() const
QByteArray toPercentEncoding(const QByteArray&exclude= QByteArray(), const QByteArray&include= QByteArray(), charpercent= '%') const
CFDataRef toRawCFData() const
NSData *toRawNSData() const
short toShort(bool*ok= nullptr, intbase= 10) const
std::string toStdString() const
uint toUInt(bool*ok= nullptr, intbase= 10) const
ulong toULong(bool*ok= nullptr, intbase= 10) const
qulonglong toULongLong(bool*ok= nullptr, intbase= 10) const
ushort toUShort(bool*ok= nullptr, intbase= 10) const
QByteArray toUpper() const
QByteArray trimmed() const
void truncate(qsizetypepos)
operator const char *() const
operator const void *() const
(since 6.10) operator std::string_view() const
QByteArray &operator+=(const QByteArray&ba)
QByteArray &operator+=(charch)
QByteArray &operator+=(const char*str)
QByteArray &operator=(QByteArray&&other)
QByteArray &operator=(const QByteArray&other)
QByteArray &operator=(const char*str)
char &operator[](qsizetypei)
char operator[](qsizetypei) const

静的パブリックメンバー

QByteArray fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(QByteArray &&base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray::FromBase64Result fromBase64Encoding(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)
QByteArray fromCFData(CFDataRef data)
(since 6.5) QByteArray fromEcmaUint8Array(emscripten::val uint8array)
QByteArray fromHex(const QByteArray &hexEncoded)
QByteArray fromNSData(const NSData *data)
QByteArray fromPercentEncoding(const QByteArray &input, char percent = '%')
(since 6.11) QByteArray fromPercentEncoding(QByteArray &&input, char percent = '%')
QByteArray fromRawCFData(CFDataRef data)
QByteArray fromRawData(const char *data, qsizetype size)
QByteArray fromRawNSData(const NSData *data)
QByteArray fromStdString(const std::string &str)
(since 6.8) qsizetype maxSize()
QByteArray number(int n, int base = 10)
QByteArray number(long n, int base = 10)
QByteArray number(qlonglong n, int base = 10)
QByteArray number(qulonglong n, int base = 10)
QByteArray number(uint n, int base = 10)
QByteArray number(ulong n, int base = 10)
QByteArray number(double n, char format = 'g', int precision = 6)
(since 6.1) qsizetype erase(QByteArray &ba, const T &t)
(since 6.1) qsizetype erase_if(QByteArray &ba, Predicate pred)
quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)
QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)
QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)
QByteArray qUncompress(const QByteArray &data)
QByteArray qUncompress(const uchar *data, qsizetype nbytes)
int qstrcmp(const char *str1, const char *str2)
char *qstrcpy(char *dst, const char *src)
char *qstrdup(const char *src)
int qstricmp(const char *str1, const char *str2)
size_t qstrlen(const char *str)
int qstrncmp(const char *str1, const char *str2, size_t len)
char *qstrncpy(char *dst, const char *src, size_t len)
int qstrnicmp(const char *s1, const char *s2, size_t len)
size_t qstrnlen(const char *str, size_t maxlen)
bool operator!=(const QByteArray &lhs, const QByteArray &rhs)
bool operator!=(const QByteArray &lhs, const char *const &rhs)
bool operator!=(const char *const &lhs, const QByteArray &rhs)
(since 6.4) QByteArray operator""_ba(const char *str, size_t size)
QByteArray operator+(const QByteArray &a1, const QByteArray &a2)
(since 6.9) QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)
QByteArray operator+(char a1, const QByteArray &a2)
(since 6.9) QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)
QByteArray operator+(const QByteArray &a1, char a2)
QByteArray operator+(const QByteArray &a1, const char *a2)
QByteArray operator+(const char *a1, const QByteArray &a2)
bool operator<(const QByteArray &lhs, const QByteArray &rhs)
bool operator<(const QByteArray &lhs, const char *const &rhs)
bool operator<(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator<<(QDataStream &out, const QByteArray &ba)
bool operator<=(const QByteArray &lhs, const QByteArray &rhs)
bool operator<=(const QByteArray &lhs, const char *const &rhs)
bool operator<=(const char *const &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const QByteArray &rhs)
bool operator==(const QByteArray &lhs, const char *const &rhs)
bool operator==(const char *const &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const QByteArray &rhs)
bool operator>(const QByteArray &lhs, const char *const &rhs)
bool operator>(const char *const &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const QByteArray &rhs)
bool operator>=(const QByteArray &lhs, const char *const &rhs)
bool operator>=(const char *const &lhs, const QByteArray &rhs)
QDataStream &operator>>(QDataStream &in, QByteArray &ba)

マクロ

詳細な説明

QByteArray を使用すると、生のバイト('\0' を含む)と、従来の 8 ビットの '\0' で終了する文字列の両方を格納することができます。 QByteArray を使用すると、const char * を使用するよりもはるかに便利です。内部的には、データの後に必ず「\0 」という終端文字が続くようにし、暗黙的な共有(書き込み時コピー)を使用してメモリ使用量を削減し、不要なデータのコピーを回避しています。

QByteArrayに加え、Qtでは文字列データを格納するためのQString クラスも提供しています。 ほとんどの場合、QString が適したクラスです。 は、その内容を(UTF-16でエンコードされた)Unicodeテキストとして扱いますが、一方、QByteArrayは、格納するバイトのエンコーディングや意味論に関する仮定を避けることを目的としています(ASCIIを使用するいくつかのレガシーなケースを除きます)。 さらに、Qt API ではQString が広く使用されています。QByteArrayが適切な主なケースは、生のバイナリデータを格納する必要がある場合と、メモリの節約が極めて重要な場合(例:Qt for Embedded Linux)の2つです。

QByteArray を初期化する一つの方法は、コンストラクタに `const char * ` を渡すだけです。たとえば、次のコードは「Hello」というデータを含むサイズ 5 のバイト配列を作成します:

QByteArray ba("Hello");

size() の値は 5 ですが、バイト配列は末尾に余分な '\0' バイトを保持しています。これにより、基になるデータへのポインタを要求する関数(例:data() の呼び出し)が使用された場合でも、ポインタが指すデータが確実に '\0' で終了していることが保証されます。

QByteArrayはconst char * データのディープコピーを作成するため、後でデータを変更しても副作用が生じることはありません。(例えば、パフォーマンス上の理由などでデータのディープコピーを取りたくない場合は、代わりにQByteArray::fromRawData()を使用してください。)

別の方法として、resize() を使用して配列のサイズを設定し、データをバイト単位で初期化する方法があります。QByteArray は、C++ の配列と同様に 0 から始まるインデックスを使用します。 特定のインデックス位置にあるバイトにアクセスするには、operator[]() を使用できます。const ではないバイト配列の場合、operator[]() はバイトへの参照を返し、その参照を代入式の左辺で使用できます。例:

QByteArray ba;
ba.resize(5);
ba[0] = 0x3c;
ba[1] = 0xb8;
ba[2] = 0x64;
ba[3] = 0x18;
ba[4] = 0xca;

読み取り専用アクセスを行う場合、at() を使用するという別の構文もあります:

for (qsizetype i = 0; i < ba.size(); ++i) {
    if (ba.at(i) >= 'a' && ba.at(i) <= 'f')
        cout << "Found character in range [a-f]" << endl;
}

at() は、ディープコピーが発生することがないため、演算子 []() よりも高速になる場合があります。

一度に多くのバイトを抽出するには、first()、last()、またはsliced() を使用します。

QByteArray は '\0' バイトを埋め込むことができます。size() 関数は、埋め込まれた '\0' バイトを含み、QByteArray によって追加された終端の '\0' を除いた、配列全体のサイズを常に返します。例:

QByteArray ba1("ca\0r\0t");
ba1.size();                     // Returns 2.
ba1.constData();                // Returns "ca" with terminating \0.

QByteArray ba2("ca\0r\0t", 3);
ba2.size();                     // Returns 3.
ba2.constData();                // Returns "ca\0" with terminating \0.

QByteArray ba3("ca\0r\0t", 4);
ba3.size();                     // Returns 4.
ba3.constData();                // Returns "ca\0r" with terminating \0.

const char cart[] = {'c', 'a', '\0', 'r', '\0', 't'};
QByteArray ba4(QByteArray::fromRawData(cart, 6));
ba4.size();                     // Returns 6.
ba4.constData();                // Returns "ca\0r\0t" without terminating \0.

最初の「\0 」バイトまで(これを含まない)データの長さを取得したい場合は、バイト配列に対してqstrlen()を呼び出してください。

resize() の呼び出し後、新しく割り当てられたバイトの値は未定義となります。すべてのバイトを特定の値に設定するには、fill() を呼び出してください。

実際のバイトへのポインタを取得するには、data() またはconstData() を呼び出します。これらの関数は、データの先頭へのポインタを返します。 このポインタは、QByteArray に対して非 const 関数が呼び出されるまで有効であることが保証されています。また、QByteArray が `raw data` から作成された場合を除き、データが '\0' バイトで終了することも保証されています。この '\0' バイトは QByteArray によって自動的に提供され、size() のカウントには含まれません。

QByteArray は、バイトデータを変更するための以下の基本関数を提供しています:append()、prepend()、insert()、replace()、およびremove()。例:

QByteArray x("and");
x.prepend("rock ");         // x == "rock and"
x.append(" roll");          // x == "rock and roll"
x.replace(5, 3, "&");       // x == "rock & roll"

上記の例では、replace() 関数の最初の 2 つの引数は、置換を開始する位置と、置換するバイト数です。

データ変更関数によって配列のサイズが増加すると、QByteArray オブジェクトのメモリ再割り当てが発生する可能性があります。この場合、QByteArray は、配列のサイズが大幅に増加するまで再割り当てを行わずにさらなる拡張に対応できるよう、当面必要な量よりも多く拡張されます。

insert()、remove()、およびサブ配列を異なるサイズの配列に置き換える場合のreplace() 関数は、配列内の多くのバイトをメモリ上で少なくとも 1 位置分移動させる必要があるため、大きな配列では処理が遅くなる(線形時間)場合があります。

QByteArrayを段階的に構築しており、QByteArrayが含むバイト数の概算を事前に把握している場合は、reserve()を呼び出して、QByteArrayに一定量のメモリを事前割り当てさせることができます。また、capacity()を呼び出すことで、QByteArrayが実際に割り当てているメモリ量を確認することもできます。

なお、非constの演算子や関数を使用すると、暗黙的な共有により、QByteArrayがデータのディープコピーを行う可能性があることに注意してください。

QByteArray はSTL スタイルのイテレータ(QByteArray::const_iterator およびQByteArray::iterator )を提供します。実際には、C++ 標準ライブラリが提供する汎用アルゴリズムを使用する際、イテレータは便利です。

注:イテレータおよび 個々の QByteArray 要素への参照には、安定性の問題があります。これらは、QByteArray を変更する操作(例:insert() やremove())が呼び出されると、無効になることがよくあります。 安定性やイテレータのような機能が必要な場合は、イテレータの代わりにインデックスを使用すべきです。インデックスは QByteArray の内部状態に依存しないため、無効化されることはありません。

注: QByteArrayのイテレータ 、および QByteArray 内の個々のバイトへの参照は、QByteArray の非 const メソッドが呼び出された場合、その有効性が保証されません。 非 const メソッドの呼び出し後に、そのようなイテレータや参照にアクセスすると、未定義の挙動が生じます。イテレータのような機能の安定性が求められる場合は、QByteArray の内部状態に紐づいておらず、無効化されることがないインデックスを、イテレータの代わりに使用してください。

QByteArray 内で特定のバイトまたはバイト列のすべての出現箇所を検索したい場合は、indexOf() またはlastIndexOf() を使用してください。 前者は指定されたインデックス位置から前方へ検索し、後者は後方へ検索します。どちらも、対象のバイトシーケンスが見つかった場合はそのインデックス位置を返し、見つからない場合は -1 を返します。例えば、特定の文字列がどこに現れるかをすべて見つける典型的なループは次のようになります:

QByteArray ba("We must be <b>bold</b>, very <b>bold</b>");
qsizetype j = 0;
while ((j = ba.indexOf("<b>", j)) != -1) {
    cout << "Found <b> tag at index position " << j << endl;
    ++j;
}

単に QByteArray に特定のバイトシーケンスが含まれているかどうかを確認したい場合は、contains() を使用します。バイト配列内で特定のバイトシーケンスが何回出現するかを知りたい場合は、count() を使用します。 特定の値のすべての出現箇所を別の値に置換したい場合は、2つの引数を持つreplace()のオーバーロードのいずれかを使用します。

QByteArrayQByteArray は、operator<()、operator<=()、operator==()、operator>=() などのオーバーロードされた演算子を使用して比較できます。この比較はバイトの数値のみに基づいて行われ、非常に高速ですが、人間が期待する結果とは異なります。ユーザーインターフェースの文字列をソートするには、QString::localeAwareCompare() を使用するほうが適しています。

歴史的な理由から、QByteArray はヌルバイト配列と空のバイト配列を区別しています。ヌルバイト配列とは、QByteArray のデフォルトコンストラクタを使用するか、コンストラクタに (const char *)0 を渡すことで初期化されたバイト配列のことです。空のバイト配列とは、サイズが 0 の任意のバイト配列のことです。ヌルバイト配列は常に空ですが、空のバイト配列が必ずしもヌルであるとは限りません:

QByteArray().isNull();          // returns true
QByteArray().isEmpty();         // returns true

QByteArray("").isNull();        // returns false
QByteArray("").isEmpty();       // returns true

QByteArray("abc").isNull();     // returns false
QByteArray("abc").isEmpty();    // returns false

isNull() を除くすべての関数は、ヌルバイト配列と空のバイト配列を同じように扱います。たとえば、data() は、ヌルバイト配列に対して '\0' バイトへの有効なポインタ(nullptrではない)を返し、QByteArray() は QByteArray("") と等価とみなされます。 常にisEmpty()を使用し、isNull()は使用しないことを推奨します。

最大サイズとメモリ不足の状態

QByteArray の最大サイズは、アーキテクチャによって異なります。ほとんどの 64 ビットシステムでは 2 GB 以上のメモリを割り当てることができ、一般的な制限は 2^63 バイトです。 実際の値は、データブロックの管理に必要なオーバーヘッドにも依存します。その結果、32 ビットプラットフォームでは最大サイズが 2 GB からオーバーヘッドを差し引いた値となり、64 ビットプラットフォームでは 2^63 バイトからオーバーヘッドを差し引いた値になると予想されます。QByteArray に格納できる要素数は、この最大サイズとなります。

メモリの割り当てに失敗した場合、アプリケーションが例外処理をサポートするようにコンパイルされていると、QByteArrayはstd::bad_alloc 例外をスローします。Qtコンテナにおけるメモリ不足の状態は、Qtが例外をスローする唯一のケースです。例外が無効化されている場合、メモリ不足は未定義の挙動となります。

なお、オペレーティングシステムによっては、大量の割り当てメモリ(特に、大規模で連続したブロック)を保持するアプリケーションに対して、さらなる制限を課す場合があります。このような考慮事項、その動作の設定、または緩和策については、QByteArray APIの範囲外となります。

CロケールおよびASCII関数

QByteArray は通常、セマンティクスを前提とせずにデータをバイト単位で扱います。セマンティクスを前提とする場合、C ロケールおよび ASCII エンコーディングを使用します。標準の Unicode エンコーディングは `QString` によってサポートされており、その他のエンコーディングについては、`QStringEncoder ` および `QStringDecoder ` を使用して Unicode に変換することでサポートされる場合があります。テキストのロケール固有の解釈には、`QLocale ` または `QString` を使用してください。

C文字列

従来の C 文字列(「\0 」で終了する文字列としても知られる)は、バイトのシーケンスであり、開始位置によって指定され、その直後の最初の「\0 」バイト(これを含まない)までの各バイトが暗黙的に含まれます。 長さを指定せずにこのようなポインタを受け入れるメソッドは、それをこのバイト列として解釈します。このようなバイト列は、その構造上、「\0 」バイトを含むことはできません。

その他のオーバーロードは、開始ポインタとバイト数を引数として受け取ります。これらは、開始アドレス以降の指定されたバイト数を使用しますが、その中に「\0 」バイトが含まれているかどうかは問いません。 ポインタのみを受け取るオーバーロードが存在しない場合、長さに -1 を渡すと、メソッドはポインタの直後に続く最初の '\0' バイトのオフセットを長さとして使用します。長さに -1 を渡すのは、メソッドが明示的にこの動作を行うと規定している場合に限るべきです(その場合、通常はデフォルト引数として指定されます)。

空白文字

バイト配列から空白文字を削除することがよく求められます('\n' 、'\t' 、' ' など)。 QByteArrayの両端から空白文字を削除したい場合は、trimmed() を使用します。また、バイト配列内の連続する空白文字の各ブロックを単一の空白文字に置換したい場合は、simplified() を使用します。これらの処理では、ASCII 形式の空白文字のみが認識されます。

数値と文字列の変換

数値データ型と文字列表現間の変換を行う関数は、ユーザーのロケール設定にかかわらず、Cロケールで実行されます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

文字の大文字・小文字

QByteArray では、大文字・小文字の区別および大文字小文字を区別しない比較の概念は、ASCII に限定されます。非 ASCII 文字は、その大文字小文字がエンコーディングに依存するため、大文字小文字を区別しないものとして扱われます。これは、大文字小文字を区別しないオプションをサポートする関数や、引数の大文字小文字を変更する関数に影響を与えます。 この影響を受ける関数には、compare()、isLower()、isUpper()、toLower()、およびtoUpper()が含まれます。

QStringには、文字を Unicode を使用して表現しているため、この問題は適用されません。

QByteArrayView 、QString 、およびQBitArrayも参照してください 。

メンバ型のドキュメント

enum QByteArray::Base64Option
flags QByteArray::Base64Options

この列挙型には、Base64のエンコードおよびデコードに使用できるオプションが含まれています。Base64はRFC 4648で定義されており、以下のオプションがあります:

定数値説明
QByteArray::Base64Encoding0(デフォルト) 通常のBase64アルファベット。単に「base64」と呼ばれる。
QByteArray::Base64UrlEncoding1「base64url」と呼ばれる代替のアルファベット。URLでの使用に適するよう、アルファベット内の2文字が置き換えられています。
QByteArray::KeepTrailingEquals0(デフォルト) エンコードされたデータの末尾にあるパディング用の等号を残すため、データのサイズは常に4の倍数になります。
QByteArray::OmitTrailingEquals2エンコードされたデータの末尾にパディング用の等号を追加しない。
QByteArray::IgnoreBase64DecodingErrors0Base64 エンコードされたデータをデコードする際、入力のエラーを無視し、無効な文字は単にスキップされます。この列挙型値は Qt 5.15 で追加されました。
QByteArray::AbortOnBase64DecodingErrors4Base64 エンコードされたデータをデコードする際、最初のデコードエラーで停止します。この列挙型値は Qt 5.15 で追加されました。

QByteArray::fromBase64Encoding() および `QByteArray::fromBase64()` は、`KeepTrailingEquals` および `OmitTrailingEquals` オプションを無視します。`IgnoreBase64DecodingErrors` オプションが指定されている場合、末尾の等号が欠落している場合や、等号が多すぎる場合でも、エラーとしてフラグが立てられません。 一方、AbortOnBase64DecodingErrorsが指定された場合、入力にはパディングが含まれていないか、あるいは正しい数の等号が含まれている必要があります。

Base64Options 型は、QFlags<Base64Option> の typedef です。これは、Base64Option 値の論理和(OR)を格納します。

QByteArray::const_iterator

このtypedefは、QByteArray に対してSTLスタイルのconstイテレータを提供します。

QByteArray::const_reverse_iterator およびQByteArray::iteratorも参照してください 。

QByteArray::const_reverse_iterator

このtypedefは、QByteArray に対してSTLスタイルのconstリバースイテレータを提供します。

QByteArray::reverse_iterator およびQByteArray::const_iteratorも参照してください 。

QByteArray::iterator

このtypedefは、QByteArray に対して、STLスタイルの非constイテレータを提供します。

QByteArray::reverse_iterator およびQByteArray::const_iteratorも参照してください 。

QByteArray::reverse_iterator

このtypedefは、QByteArray に対して、STLスタイルの非constリバースイテレータを提供します。

QByteArray::const_reverse_iterator およびQByteArray::iteratorも参照してください 。

メンバ関数のドキュメント

[constexpr noexcept] QByteArray::QByteArray()

空のバイト配列を構築します。

isEmpty()も参照してください 。

[explicit, since 6.8] QByteArray::QByteArray(QByteArrayView v)

バイト配列ビューのデータで初期化されたバイト配列を生成します。

v がnullである場合に限り、QByteArrayもnullになります。

この関数はQt 6.8で導入されました。

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

配列 `data` の先頭から `size ` バイト分を含むバイト配列を作成します。

data が0の場合、nullバイト配列が生成されます。

size が負の場合、data は '\0' で終了する文字列を指しているとみなされ、その長さは動的に決定されます。

QByteArray は、文字列データのディープコピーを作成します。

fromRawData()も参照してください 。

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

size のサイズのバイト配列を、初期化されていない状態で作成します。

例:

QByteArray buffer(123, Qt::Uninitialized);

QByteArray::QByteArray(qsizetype size, char ch)

サイズがsize のバイト配列を構築し、各バイトをch に設定します。

fill()も参照してください 。

[noexcept] QByteArray::QByteArray(const QByteArray &other)

other のコピーを作成します。

QByteArrayは暗黙的に共有されるため、この操作は定数時間で行われます。これにより、関数からQByteArrayを返す処理は非常に高速になります。共有されているインスタンスが変更された場合、そのインスタンスはコピーされ(コピーオンライト)、線形時間かかります。

operator=()も参照してください 。

[noexcept default] QByteArray::QByteArray(QByteArray &&other)

QByteArrayのインスタンスをムーブコンストラクタで生成し、other が指していたのと同じオブジェクトを指すようにします。

[noexcept] QByteArray::~QByteArray()

バイト配列を破棄します。

QByteArray &QByteArray::append(const QByteArray &ba)

バイト配列 `ba ` を、このバイト配列の末尾に追加します。

例:

QByteArray x("free");
QByteArray y("dom");
x.append(y);
// x == "freedom"

これは、insert(size(),ba と同等です。

注:QByteArray は暗黙的に共有されるクラスです。したがって、空のバイト配列に追加する場合、そのバイト配列はba に保持されているデータを単に共有することになります。この場合、データのコピーは行われないため、定数時間しかかかりません。共有インスタンスが変更された場合は、コピー(コピー・オン・ライト)が行われ、線形時間がかかります。

追加先のバイト配列が空でない場合、データの完全コピーが行われ、線形時間かかります。

append() 関数は通常、非常に高速(定数時間)です。これは、QByteArray がデータの末尾に余分な領域を事前に確保しているため、毎回配列全体を再割り当てすることなくサイズを拡張できるからです。

operator+=()、prepend()、およびinsert()も参照してください 。

QByteArray &QByteArray::append(QByteArrayView data)

このバイト配列に `data ` を追加します。

これはオーバーロードされた関数です。

QByteArray &QByteArray::append(char ch)

このバイト配列にバイトch を追加します。

これはオーバーロードされた関数です。

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

「\0 」で終了する文字列 `str ` を、このバイト配列に追加します。

これはオーバーロードされた関数です。

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

str から始まる最初のlen バイトをこのバイト配列に追加し、このバイト配列への参照を返します。追加されるバイトには、「'\0 」バイトが含まれる場合があります。

len が負の値の場合、str は「'\0'」で終端された文字列とみなされ、コピーする長さはqstrlen() を使用して自動的に決定されます。

len が 0 の場合、またはstr が null の場合は、バイト配列には何も追加されません。len の長さがstrを超えないようにしてください。

これはオーバーロードされた関数です。

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

バイト配列 `ch ` の `count ` 個のコピーをこのバイト配列に追加し、このバイト配列への参照を返します。

count が負の数または 0 の場合、バイト配列には何も追加されません。

これはオーバーロードされた関数です。

[since 6.6] QByteArray &QByteArray::assign(QByteArrayView v)

このバイト配列の内容を、v のコピーで置き換え、このバイト配列への参照を返します。

このバイト配列のサイズは、v のサイズと同じになります。

この関数は、v のサイズがこのバイト配列の容量を超える場合、またはこのバイト配列が共有されている場合にのみ、メモリを割り当てます。

この関数は Qt 6.6 で導入されました。

[since 6.6] template <typename InputIterator, QByteArray::if_input_iterator<InputIterator> = true> QByteArray &QByteArray::assign(InputIterator first, InputIterator last)

このバイト配列の内容を、イテレータの範囲 [first,last) 内の要素のコピーで置き換え、このバイト配列への参照を返します。

このバイト配列のサイズは、範囲 [first,last) 内の要素数と同じになります。

この関数は、範囲内の要素数がこのバイト配列の容量を超える場合、またはこのバイト配列が共有されている場合にのみ、メモリを割り当てます。

注: いずれかの引数が *this へのイテレータである場合、または [first,last) が有効な範囲でない場合、振る舞いは未定義 となります。

制約

InputIterator がLegacyInputIterator の要件を満たしている場合にのみ、オーバーロードの解決に関与します。

この関数は Qt 6.6 で導入されました。

[since 6.6] QByteArray &QByteArray::assign(qsizetype n, char c)

このバイト配列の内容を、c のn 個のコピーに置き換え、このバイト配列への参照を返します。

このバイト配列のサイズはn に等しくなりますが、 は非負でなければなりません。

この関数は、n がこのバイト配列の容量を超える場合、またはこのバイト配列が共有されている場合にのみ、メモリを割り当てます。

この関数は Qt 6.6 で導入されました。

fill()も参照してください 。

char QByteArray::at(qsizetype i) const

バイト配列のインデックス位置i にあるバイトを返します。

i i は、バイト配列内の有効なインデックス位置である必要があります(つまり、0 <= < ())。size

operator[]()も参照してください 。

char &QByteArray::back()

バイト配列の最後のバイトへの参照を返します。operator[](size() - 1) と同じです。

この関数は、STLとの互換性を確保するために提供されています。

警告: 空のバイト配列に対してこの関数を呼び出すと 、未定義の挙動となります。

関連項目: front()、at()、およびoperator[]()。

char QByteArray::back() const

バイト配列の最後のバイトを返します。at(size() - 1) と同じです。

この関数は、STLとの互換性を確保するために提供されています。

警告: 空のバイト配列に対してこの関数を呼び出すと 、未定義の挙動となります。

関連項目: front()、at()、およびoperator[]()。

QByteArray::iterator QByteArray::begin()

バイト配列の先頭バイトを指すSTL形式のイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: constBegin() およびend()。

[noexcept] QByteArray::const_iterator QByteArray::begin() const

この関数は、QByteArray::begin() をオーバーロードしています。

qsizetype QByteArray::capacity() const

バイト配列に再割り当てを強制することなく格納できる最大バイト数を返します。

この関数の唯一の目的は、QByteArray のメモリ使用量を微調整する手段を提供することです。一般的に、この関数を呼び出す必要はほとんどありません。バイト配列に含まれるバイト数を知りたい場合は、size()を呼び出してください。

注: 静的に割り当てられたバイト配列は 、空でなくても容量が 0 と報告されます。

注: 割り当てられたメモリブロック内の空き領域の位置は 未定義です。つまり、空きメモリが常に初期化された要素の後に位置していると想定すべきではありません。

関連項目: reserve() およびsqueeze()。

[noexcept] QByteArray::const_iterator QByteArray::cbegin() const

バイト配列の最初のバイトを指す、STL スタイルのconstイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効化されます。

関連項目: begin() およびcend()。

[noexcept] QByteArray::const_iterator QByteArray::cend() const

バイト配列の最後のバイトの直後を指す、STL スタイルのconstイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: cbegin() およびend()。

void QByteArray::chop(qsizetype n)

バイト配列の末尾からn バイトを削除します。

n がsize() より大きい場合、結果は空のバイト配列になります。

例:

QByteArray ba("STARTTLS\r\n");
ba.chop(2);                 // ba == "STARTTLS"

truncate()、resize()、およびfirst()も参照してください 。

QByteArray QByteArray::chopped(qsizetype len) &&

QByteArray QByteArray::chopped(qsizetype len) const &

このバイト配列の左端からsize() -len バイト分を含むバイト配列を返します。

注: len が負の数、またはsize()より大きい場合、動作は 未定義となります。

関連項目: endsWith()、first()、last()、sliced()、chop()、truncate()、およびslice()。

void QByteArray::clear()

バイト配列の内容をクリアし、null にします。

resize() およびisNull()も参照してください 。

[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

このQByteArray が、QByteArrayView bv の前、同じ位置、または後にソートされるかによって、0未満、0以上、または0より大きい整数を返します。比較は、大文字と小文字の区別cs に従って行われます。

この関数は Qt 6.0 で導入されました。

operator== およびCharacter Caseも参照してください 。

[noexcept] QByteArray::const_iterator QByteArray::constBegin() const

バイト配列の最初のバイトを指す、STL スタイルのconstイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: begin() およびconstEnd()。

[noexcept] const char *QByteArray::constData() const

バイト配列に格納されている定数データへのポインタを返します。このポインタを使用すると、配列を構成するバイトにアクセスできます。QByteArray オブジェクトが生データから作成された場合を除き、データは「\0 」で終了します。

このポインタは、detachが発生せず、かつQByteArray が変更されない限り、有効なままです。

この関数は、主に `const char *` を受け入れる関数にバイト配列を渡す際に役立ちます。

注:QByteArray は、「\0 」を含むあらゆるバイト値を格納できますが、char * 引数を受け取るほとんどの関数は、データが最初に遭遇した「\0 」で終了すると想定しています。

data()、operator[]()、およびfromRawData()も参照してください 。

[noexcept] QByteArray::const_iterator QByteArray::constEnd() const

バイト配列の最後のバイトの直後を指す、STL スタイルのconstイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: constBegin() およびend()。

[since 6.0] bool QByteArray::contains(QByteArrayView bv) const

このバイト配列に、bv で指定されたバイトシーケンスが含まれている場合は `true ` を返し、そうでない場合は `false` を返します。

この関数は Qt 6.0 で導入されました。

indexOf() およびcount()も参照してください 。

bool QByteArray::contains(char ch) const

バイト配列にバイトch が含まれている場合はtrue を返し、そうでない場合はfalse を返します。

これはオーバーロードされた関数です。

[since 6.0] qsizetype QByteArray::count(QByteArrayView bv) const

bv によってこのバイト配列内で検出された(重複している可能性のある)バイトシーケンスの出現回数を返します。

この関数は Qt 6.0 で導入されました。

contains() およびindexOf()も参照してください 。

qsizetype QByteArray::count(char ch) const

バイト配列内のバイトch の出現回数を返します。

これはオーバーロードされた関数です。

contains() およびindexOf()も参照してください 。

[noexcept] QByteArray::const_reverse_iterator QByteArray::crbegin() const

バイト配列の最初のバイトを指す、STL 形式の逆順イテレータ(const)を、逆順で返します。

警告: 返されたイテレータは 、切り離された場合、または `QByteArray ` が変更された場合に無効になります。

関連項目: begin(),rbegin(), およびrend()。

[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const

バイト配列の最後のバイトの直後の位置を指す、STL 形式の定数逆イテレータを、逆順で返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: end()、rend()、rbegin()。

char *QByteArray::data()

バイト配列に格納されているデータへのポインタを返します。このポインタを使用すると、配列を構成するバイトにアクセスしたり、変更したりすることができます。データは「\0 」で終了します。つまり、返されたポインタの後にアクセスできるバイト数は、終了文字「\0 」を含めてsize() + 1 となります。

例:

QByteArray ba("Hello world");
char *data = ba.data();
while (*data) {
    cout << "[" << *data << "]" << endl;
    ++data;
}

ポインタは、デタッチが発生せず、`QByteArray ` が変更されない限り有効です。

読み取り専用アクセスでは、constData() の方が高速です。これは、ディープコピーが発生しないためです。

この関数は、主にconst char * を受け付ける関数にバイト配列を渡す際に役立ちます。

次の例は、data() が返す char* のコピーを作成していますが、末尾の '\0' 用のバイトを割り当てていないため、ヒープが破損し、クラッシュを引き起こします:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size()];
strcpy(data, text.data());
delete [] data;

次のコードでは、適切な量のメモリが割り当てられています:

QString tmp = "test";
QByteArray text = tmp.toLocal8Bit();
char *data = new char[text.size() + 1];
strcpy(data, text.data());
delete [] data;

注:QByteArray は「\0 」を含む任意のバイト値を格納できますが、char * 引数を受け取る関数の多くは、データが最初に遭遇した「\0 」で終了すると想定しています。

constData() およびoperator[]()も参照してください 。

[noexcept] const char *QByteArray::data() const

これはオーバーロードされた関数です。

QByteArray::iterator QByteArray::end()

バイト配列の最後のバイトの直後を指す、STL スタイルのイテレータを返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: begin() およびconstEnd()。

[noexcept] QByteArray::const_iterator QByteArray::end() const

この関数は、QByteArray::end() をオーバーロードしています。

[since 6.0] bool QByteArray::endsWith(QByteArrayView bv) const

このバイト配列の末尾が、bv で確認されるバイトシーケンスで終わっている場合は、true を返します。そうでない場合は、false を返します。

例:

QByteArray url("http://qt-project.org/doc/qt-5.0/qtdoc/index.html");
if (url.endsWith(".html"))
    {/*...*/}

この関数は Qt 6.0 で導入されました。

startsWith() およびlast()も参照してください 。

bool QByteArray::endsWith(char ch) const

このバイト配列の末尾がバイトch である場合はtrue を返し、そうでない場合はfalse を返します。

これはオーバーロードされた関数です。

[since 6.1] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)

バイト配列から、半開範囲 [first,last ) 内の文字を削除します。削除前のlast で参照されていた文字へのイテレータを返します。

この関数は Qt 6.1 で導入されました。

[since 6.5] QByteArray::iterator QByteArray::erase(QByteArray::const_iterator it)

バイト配列から、it で指定された文字を削除します。削除された文字の直後の文字を指すイテレータを返します。

QByteArray ba = "abcdefg";
auto it = ba.erase(ba.cbegin()); // ba is now "bcdefg" and it points to "b"

これはオーバーロードされた関数です。

この関数は Qt 6.5 で導入されました。

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

バイト配列のすべてのバイトをch に設定します。size が-1(デフォルト)以外の場合、事前にバイト配列のサイズがsize に調整されます。

例:

QByteArray ba("Istambul");
ba.fill('o');
// ba == "oooooooo"

ba.fill('X', 2);
// ba == "XX"

resize()も参照してください 。

[since 6.0] QByteArray QByteArray::first(qsizetype n) &&

[since 6.0] QByteArray QByteArray::first(qsizetype n) const &

バイト配列の先頭n バイトを返します。

注: n < 0 またはn >size() の場合、動作は 未定義となります。

例:

QByteArray x("Pineapple");
QByteArray y = x.first(4);
// y == "Pine"

これらの関数はQt 6.0で導入されました。

関連項目: last()、sliced()、startsWith()、chopped()、chop()、truncate()、およびslice()。

[static] QByteArray QByteArray::fromBase64(const QByteArray &base64, QByteArray::Base64Options options = Base64Encoding)

options で定義されたオプションを使用して、Base64配列base64 のデコード済みコピーを返します。options にIgnoreBase64DecodingErrors (デフォルト)が指定されている場合、入力の有効性はチェックされません。入力に含まれる無効な文字はスキップされ、デコード処理は以降の文字に対して継続されます。options にAbortOnBase64DecodingErrors が指定されている場合、デコードは最初の無効な文字で停止します。

例:

QByteArray text = QByteArray::fromBase64("UXQgaXMgZ3JlYXQh");
text.data();            // returns "Qt is great!"

QByteArray::fromBase64("PHA+SGVsbG8/PC9wPg==", QByteArray::Base64Encoding); // returns "<p>Hello?</p>"
QByteArray::fromBase64("PHA-SGVsbG8_PC9wPg==", QByteArray::Base64UrlEncoding); // returns "<p>Hello?</p>"

Base64 エンコードされたデータをデコードするために使用されるアルゴリズムは、RFC 4648 で定義されています。

デコードされたデータを返します。ただし、AbortOnBase64DecodingErrors オプションが指定され、かつ入力データが無効だった場合は、空のバイト配列を返します。

注: 新しいコードでは、fromBase64Encoding()関数の使用が 推奨されます。

関連項目: toBase64() およびfromBase64Encoding()。

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

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

options で定義されたオプションを使用して、Base64 配列base64 をデコードします。options にIgnoreBase64DecodingErrors (デフォルト)が含まれている場合、入力の有効性はチェックされません。入力内の無効な文字はスキップされ、デコード処理は後続の文字へと続行されます。options にAbortOnBase64DecodingErrors が含まれている場合、デコードは最初の無効な文字で停止します。

例:

void process(const QByteArray &);

if (auto result = QByteArray::fromBase64Encoding(encodedData))
    process(*result);

Base64エンコードされたデータをデコードするために使用されるアルゴリズムは、RFC 4648で定義されています。

デコードされたデータと、デコードが成功したかどうかを示すフラグを含む QByteArrayFromBase64Result オブジェクトを返します。AbortOnBase64DecodingErrors オプションが指定され、入力データが無効だった場合、デコードされたデータの内容は未定義となります。

toBase64()も参照してください 。

[static] QByteArray QByteArray::fromCFData(CFDataRef data)

CFData `data` のコピーを含む新しい `QByteArray ` を作成します。

fromRawCFData()、fromRawData()、toRawCFData()、およびtoCFData()も参照してください 。

[static, since 6.5] QByteArray QByteArray::fromEcmaUint8Array(emscripten::val uint8array)

Uint8Array `uint8array` のコピーを含む新しい `QByteArray ` を生成します。

この関数は、C++コードからはアドレス指定できないJavaScriptデータバッファから、QByteArray が所有するヒープメモリへデータを転送します。この関数が戻り、コピーが完了したら、Uint8Arrayを解放しても構いません。

uint8array 引数は、Uint8Arrayオブジェクトを参照するemscripten::valでなければなりません。例えば、グローバルなJavaScript変数から取得したものなどです:

emscripten::val uint8array = emscripten::val::global("g_uint8array");
QByteArray byteArray = QByteArray::fromEcmaUint8Array(uint8array);

Uint8ArrayのサイズがQByteArray の最大容量を超える場合、またはuint8array 引数がUint8Array型でない場合、この関数はnullのQByteArray を返します。

この関数は Qt 6.5 で導入されました。

toEcmaUint8Array()も参照してください 。

[static] QByteArray QByteArray::fromHex(const QByteArray &hexEncoded)

16進数でエンコードされた配列 `hexEncoded` のデコード済みコピーを返します。入力の妥当性はチェックされません。入力に含まれる無効な文字はスキップされ、その後の文字からデコード処理が続行されます。

例:

QByteArray text = QByteArray::fromHex("517420697320677265617421");
text.data();            // returns "Qt is great!"

toHex()も参照してください 。

[static] QByteArray QByteArray::fromNSData(const NSData *data)

NSData `data` のコピーを含む、新しい `QByteArray ` を作成します。

fromRawNSData()、fromRawData()、toNSData()、およびtoRawNSData()も参照してください 。

[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')

URI/URL形式のパーセントエンコーディングから「input 」をデコードします。

デコードされたテキストを含むバイト配列を返します。percent パラメータを使用すると、エスケープ文字として「%」以外の文字(例えば「_」や「=」など)を指定できます。input.percentDecoded (パーセント)と同等です。

例:

QByteArray text=QByteArray::fromPercentEncoding("Qt%20is%20great%33");
qDebug("%s", text.data());      // reports "Qt is great!"

「percentDecoded()」も参照してください 。

[static, since 6.11] QByteArray QByteArray::fromPercentEncoding(QByteArray &&input, char percent = '%')

これはオーバーロードされた関数です。

この関数は Qt 6.11 で導入されました。

[static] QByteArray QByteArray::fromRawCFData(CFDataRef data)

CFData `data` のバイトを使用する `QByteArray ` を生成します。

data のバイトはコピーされません。

呼び出し側は、このQByteArray オブジェクトが存在する限り、CFData が削除または変更されないことを保証します。

fromCFData()、fromRawData()、toRawCFData()、およびtoCFData()も参照してください 。

[static] QByteArray QByteArray::fromRawData(const char *data, qsizetype size)

data 配列の最初のsize バイトを使用するQByteArray を構築します。バイトはコピーされません。QByteArray にはdata ポインタが格納されます。呼び出し側は、このQByteArray および変更されていないそのコピーが存在する限り、data が削除または変更されないことを保証しなければなりません。 言い換えれば、QByteArray は暗黙的に共有されるクラスであり、この関数が返すインスタンスにはdata へのポインタが含まれているため、呼び出し元は、返されたQByteArray およびそのコピーが存在する限り、data を削除したり、直接変更したりしてはならない。ただし、QByteArray はdata の所有権を取得しないため、QByteArray のデストラクタは、data を参照する最後のQByteArray が破棄された場合でも、生のdata を削除することは決してない。

その後、返されたQByteArray の内容、またはそこから作成されたコピーを変更しようとすると、変更を行う前にdata 配列のディープコピーが作成されます。これにより、生のdata 配列自体がQByteArray によって変更されることは決してありません。

以下は、生データをQByteArray にコピーすることなく、メモリ上の生データに対してQDataStream を使用してデータを読み取る例です:

static const char mydata[] = {
    '\x00', '\x00', '\x03', '\x84', '\x78', '\x9c', '\x3b', '\x76',
    '\xec', '\x18', '\xc3', '\x31', '\x0a', '\xf1', '\xcc', '\x99',
    //...
    '\x6d', '\x5b'
};

QByteArray data = QByteArray::fromRawData(mydata, sizeof(mydata));
QDataStream in(&data, QIODevice::ReadOnly);
//...

警告: fromRawData() で作成されたバイト配列は 、生データの位置size に '\0' バイトが含まれていない限り、'\0'で終了されていません。これはQDataStream やindexOf() などの関数にとっては問題になりませんが、'\0' で終了されていることが想定されるconst char * を受け取る関数にこのバイト配列を渡すと、失敗します。

setRawData()、data()、constData()、nullTerminate()、およびnullTerminated()も参照してください 。

[static] QByteArray QByteArray::fromRawNSData(const NSData *data)

NSDatadata のバイトデータを使用するQByteArray を生成します。

data のバイトはコピーされません。

呼び出し元は、このQByteArray オブジェクトが存在する限り、NSData が削除または変更されないことを保証します。

fromNSData()、fromRawData()、toRawNSData()、およびtoNSData()も参照してください 。

[static] QByteArray QByteArray::fromStdString(const std::string &str)

str 文字列のコピーをQByteArray として返します。

toStdString() およびQString::fromStdString()も参照してください 。

char &QByteArray::front()

バイト配列の先頭バイトへの参照を返します。operator[](0) と同じです。

この関数は、STLとの互換性を確保するために提供されています。

警告: 空のバイト配列に対してこの関数を呼び出すと 、未定義の挙動となります。

関連項目: back()、at()、およびoperator[]()。

char QByteArray::front() const

バイト配列の最初のバイトを返します。at(0) と同じです。

この関数は、STLとの互換性を確保するために提供されています。

警告: 空のバイト配列に対してこの関数を呼び出すと 、未定義の挙動となります。

関連項目: back()、at()、およびoperator[]()。

[since 6.0] qsizetype QByteArray::indexOf(QByteArrayView bv, qsizetype from = 0) const

このバイト配列において、bv によって処理されるバイトシーケンスの最初の出現箇所のインデックス位置を、インデックス位置from から前方へ検索して返します。一致する箇所が見つからない場合は-1を返します。

例:

QByteArray x("sticky question");
QByteArrayView y("sti");
x.indexOf(y);               // returns 0
x.indexOf(y, 1);            // returns 10
x.indexOf(y, 10);           // returns 10
x.indexOf(y, 11);           // returns -1

この関数は Qt 6.0 で導入されました。

関連項目: lastIndexOf()、contains()、count()を参照してください 。

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

このバイト配列内で、バイトch が最初に現れる位置のインデックスを、インデックス位置from から前方へ検索して返します。一致する箇所が見つからない場合は-1を返します。

例:

QByteArray ba("ABCBA");
ba.indexOf("B");            // returns 1
ba.indexOf("B", 1);         // returns 1
ba.indexOf("B", 2);         // returns 3
ba.indexOf("X");            // returns -1

これはオーバーロードされた関数です。

lastIndexOf() およびcontains()も参照してください 。

[since 6.0] QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data)

インデックス位置i にdata を挿入し、このバイト配列への参照を返します。

例:

QByteArray ba("Meal");
ba.insert(1, QByteArrayView("ontr"));
// ba == "Montreal"

大きなバイト配列の場合、この操作は遅くなる可能性があります(線形時間)。これは、インデックスi 以降のすべてのバイトを、メモリ上で少なくとも 1 位置分先へ移動させる必要があるためです。

この配列は、挿入に対応するために拡張されます。i が配列の末尾を超えている場合、まずスペース文字で配列を拡張し、i に到達させます。

この関数は Qt 6.0 で導入されました。

append()、prepend()、replace()、およびremove()も参照してください 。

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

インデックス位置i にdata を挿入し、このバイト配列への参照を返します。

この配列は、挿入に対応するために拡張されます。i が配列の末尾を超えている場合、まずこのi に到達するまで、配列はスペース文字で拡張されます。

append()、prepend()、replace()、およびremove()も参照してください 。

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

インデックス位置i にs を挿入し、このバイト配列への参照を返します。

この配列は、挿入に対応するために拡張されます。i が配列の末尾を超えている場合、まずこのi に到達するまで、配列がスペース文字で拡張されます。

この関数は、insert(i, QByteArrayView(s))

関連項目: append()、prepend()、replace()、およびremove()。

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

バイト配列のインデックス位置i に、バイトch を挿入します。

この配列は、挿入に対応するためにサイズが拡大されます。i が配列の末尾を超えている場合、まずこのi に到達するまで、配列はスペース文字で拡張されます。

これはオーバーロードされた関数です。

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

バイト配列のi の位置に、data から始まるlen バイトを挿入します。

この配列は、挿入に対応するために拡張されます。i が配列の末尾を超えている場合、まずこのi に到達するまで、配列はスペース文字で拡張されます。

これはオーバーロードされた関数です。

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

バイト配列のインデックス位置i に、バイトch のcount 個のコピーを挿入します。

この配列は、挿入に対応するために拡張されます。i が配列の末尾を超えている場合、まずこのi に到達するまで、配列はスペース文字で拡張されます。

これはオーバーロードされた関数です。

[constexpr noexcept] bool QByteArray::isEmpty() const

バイト配列のサイズが 0 の場合は `true ` を返し、それ以外の場合は `false` を返します。

例:

QByteArray().isEmpty();         // returns true
QByteArray("").isEmpty();       // returns true
QByteArray("abc").isEmpty();    // returns false

size()も参照してください 。

bool QByteArray::isLower() const

このバイト配列が小文字である場合、つまり、toLower() による折りたたみ結果と一致する場合に、true を返します。

なお、これはバイト配列が小文字のみを含んでいることを意味するのではなく、ASCIIの大文字を含まないということのみを指します。

isUpper() およびtoLower()も参照してください 。

[noexcept] bool QByteArray::isNull() const

このバイト配列がnullの場合はtrue を返し、それ以外の場合はfalse を返します。

例:

QByteArray().isNull();          // returns true
QByteArray("").isNull();        // returns false
QByteArray("abc").isNull();     // returns false

Qt では、歴史的な理由から、null バイト配列と空のバイト配列を区別しています。ほとんどのアプリケーションにとって重要なのは、バイト配列にデータが含まれているかどうかであり、これはisEmpty() を使用して判断できます。

isEmpty()も参照してください 。

bool QByteArray::isUpper() const

このバイト配列が大文字である場合、つまり、toUpper() によるフォールディング結果と一致する場合、true を返します。

なお、これはバイト配列がすべて大文字で構成されていることを意味するのではなく、ASCIIの小文字が含まれていないことを意味するに過ぎません。

isLower() およびtoUpper()も参照してください 。

[noexcept, since 6.3] bool QByteArray::isValidUtf8() const

このバイト配列に有効なUTF-8エンコードされたデータが含まれている場合はtrue を返し、そうでない場合はfalse を返します。

この関数は Qt 6.3 で導入されました。

[since 6.0] QByteArray QByteArray::last(qsizetype n) &&

[since 6.0] QByteArray QByteArray::last(qsizetype n) const &

バイト配列の末尾n バイトを返します。

注: n < 0 またはn >size() の場合、動作は 未定義です。

例:

QByteArray x("Pineapple");
QByteArray y = x.last(5);
// y == "apple"

これらの関数は Qt 6.0 で導入されました。

関連項目: first()、sliced()、endsWith()、chopped()、chop()、truncate()、およびslice()。

[since 6.0] qsizetype QByteArray::lastIndexOf(QByteArrayView bv, qsizetype from) const

このバイト配列において、bv によって処理されたバイトシーケンスの最後の出現箇所の先頭位置を、インデックス位置from から逆方向に検索して返します。

from が -1 の場合は最後の文字から、-2 の場合は最後から 2 番目の文字から、というように検索を開始します。

一致するものが見つからない場合は -1 を返します。

例:

QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

注: 長さ0のbv を検索する場合 、負のfrom を指定することで、データの末尾にある一致は検索対象から除外されます。これは、-1 が通常、バイト配列の末尾から検索すると考えられているにもかかわらず、末尾の一致は最後の文字の後に位置するため、除外されるからです。 このような末尾の空の一致を含めるには、from に正の値を指定するか、from パラメータを完全に省略してください。

この関数は Qt 6.0 で導入されました。

indexOf()、contains()、およびcount()も参照してください 。

[since 6.2] qsizetype QByteArray::lastIndexOf(QByteArrayView bv) const

このバイト配列において、bv によって解析されたバイトシーケンスの最後の出現箇所の先頭位置を、バイト配列の末尾から逆方向に検索して返します。一致する箇所が見つからない場合は -1 を返します。

例:

QByteArray x("crazy azimuths");
QByteArrayView y("az");
x.lastIndexOf(y);           // returns 6
x.lastIndexOf(y, 6);        // returns 6
x.lastIndexOf(y, 5);        // returns 2
x.lastIndexOf(y, 1);        // returns -1

これはオーバーロードされた関数です。

この関数は Qt 6.2 で導入されました。

関連項目: indexOf()、contains()、count()も参照してください 。

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

このバイト配列内で、バイトch が最後に現れる位置のインデックスを、インデックス位置from から逆方向に検索して返します。from が-1(デフォルト)の場合、検索は最後のバイト(インデックスsize() - 1の位置)から開始されます。一致する箇所が見つからない場合は-1を返します。

例:

QByteArray ba("ABCBA");
ba.lastIndexOf("B");        // returns 3
ba.lastIndexOf("B", 3);     // returns 3
ba.lastIndexOf("B", 2);     // returns 1
ba.lastIndexOf("X");        // returns -1

これはオーバーロードされた関数です。

indexOf() およびcontains()も参照してください 。

QByteArray QByteArray::left(qsizetype len) &&

QByteArray QByteArray::left(qsizetype len) const &

このバイト配列の先頭len バイトを含むバイト配列を返します。

len が範囲外になることがないことが分かっている場合は、新しいコードではfirst()を使用してください。こちらの方が高速です。

len がsize() より大きい場合は、バイト配列全体が返されます。

len が0より小さい場合、空のQByteArray を返します。

関連項目: first()、last()、startsWith()、chopped()、chop()、およびtruncate()。

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

width のサイズのバイト配列を返します。このバイト配列には、fill バイトでパディングされた元のバイト配列が含まれます。

truncate が false で、バイト配列のsize() がwidth より大きい場合、返されるバイト配列はこのバイト配列のコピーとなります。

truncate がtrueで、バイト配列のsize()がwidth より大きい場合、位置width 以降のバイト配列のコピーからバイトが削除され、そのコピーが返されます。

例:

QByteArray x("apple");
QByteArray y = x.leftJustified(8, '.');   // y == "apple..."

rightJustified()も参照してください 。

[constexpr noexcept] qsizetype QByteArray::length() const

size() と同じです。

[static constexpr noexcept, since 6.8] qsizetype QByteArray::maxSize()

[constexpr noexcept, since 6.8] qsizetype QByteArray::max_size() const

バイト配列が理論上保持できる要素の最大数を返します。実際には、システムで利用可能なメモリ量によって制限されるため、この数ははるかに小さくなる可能性があります。

これらの関数は Qt 6.8 で導入されました。

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

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

このバイト配列の、位置pos から始まる、len バイトを含むバイト配列を返します。

pos およびlen が範囲外になることがないことが分かっている場合は、新しいコードではsliced() を使用してください。こちらの方が高速です。

len が -1(デフォルト)の場合、またはpos +len >=size() の場合、pos の位置からバイト配列の末尾までのすべてのバイトを含むバイト配列を返します。

first()、last()、sliced()、chopped()、chop()、truncate()、およびslice()も参照してください 。

[since 6.10] QByteArray &QByteArray::nullTerminate()

このバイト配列のデータがヌル終端されていない場合、このメソッドはデータのディープコピーを作成し、ヌル終端にします。

QByteArray はデフォルトでヌル終端されていますが、場合によっては(例:fromRawData()を使用する場合など)、データが必ずしも\0 文字で終わるとは限らず、ヌル終端された文字列を期待するメソッド(例:C API)を呼び出す際に問題となる可能性があります。

この関数は Qt 6.10 で導入されました。

nullTerminated()、fromRawData()、およびsetRawData()も参照してください 。

[since 6.10] QByteArray QByteArray::nullTerminated() &&

[since 6.10] QByteArray QByteArray::nullTerminated() const &

このバイト配列の、常にヌル終端されたコピーを返します。nullTerminate() を参照してください。

これらの関数は Qt 6.10 で導入されました。

nullTerminate()、fromRawData()、およびsetRawData()も参照してください 。

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

整数 `n ` をテキストとして表すバイト配列を返します。

指定されたbase (デフォルトは10)を使用して、n を表す文字列を含むバイト配列を返します。2進法から36進法までがサポートされており、9を超える数字にはアルファベットが使用されます(Aは10、Bは11、というように)。

例:

int n = 63;
QByteArray::number(n);              // returns "63"
QByteArray::number(n, 16);          // returns "3f"
QByteArray::number(n, 16).toUpper();  // returns "3F"

注: 数値の書式は ローカライズされていません。ユーザーのロケールに関係なく、デフォルトの C ロケールが使用されます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

関連項目: setNum() およびtoInt()。

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

これはオーバーロードされた関数です。

toLong()も参照してください 。

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

これはオーバーロードされた関数です。

toLongLong()も参照してください 。

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

これはオーバーロードされた関数です。

toULongLong()も参照してください 。

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

これはオーバーロードされた関数です。

toUInt()も参照してください 。

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

これはオーバーロードされた関数です。

toULong()も参照してください 。

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

浮動小数点数 `n ` をテキストとして表すバイト配列を返します。

指定されたformat およびprecision を用いて、n を表す文字列を含むバイト配列を返します。これらの引数の意味は、QLocale::toString (double, char, int)の場合と同じです。例:

QByteArray ba = QByteArray::number(12.3456, 'E', 3);
// ba == 1.235E+01

これはオーバーロードされた関数です。

toDouble() およびQLocale::FloatingPointPrecisionOptionも参照してください 。

[since 6.4] QByteArray QByteArray::percentDecoded(char percent = '%') const &

URI/URL形式のパーセントエンコーディングをデコードします。

デコードされたテキストを含むバイト配列を返します。percent パラメータを使用すると、エスケープ文字として「%」以外の文字(例えば「_」や「=」など)を使用することができます。

例:

QByteArray encoded("Qt%20is%20great%33");
QByteArray decoded = encoded.percentDecoded(); // Set to "Qt is great!"

注: 無効な入力(例えば、有効な16進数ではない「%G5」という文字列を含む場合など)が与えられると 、出力も無効になります。例として、「%G5」という文字列は「W」にデコードされる可能性があります。

この関数は Qt 6.4 で導入されました。

関連項目: ` toPercentEncoding()` および `QUrl::fromPercentEncoding()`。

[since 6.11] QByteArray QByteArray::percentDecoded(char percent = '%') &&

これはオーバーロードされた関数です。

この関数は Qt 6.11 で導入されました。

QByteArray &QByteArray::prepend(QByteArrayView ba)

バイト配列ビュー `ba ` をこのバイト配列の先頭に追加し、このバイト配列への参照を返します。

QByteArray はデータの先頭に余分な領域を事前に確保しているため、毎回配列全体を再割り当てすることなくサイズを拡張できることから、この操作は通常非常に高速(定数時間)です。

例:

QByteArray x("ship");
QByteArray y("air");
x.prepend(y);
// x == "airship"

これは insert(0,ba) と同じです。

append() およびinsert()も参照してください 。

QByteArray &QByteArray::prepend(char ch)

このバイト配列の先頭に、バイトch を追加します。

これはオーバーロードされた関数です。

QByteArray &QByteArray::prepend(const QByteArray &ba)

このバイト配列の先頭に「ba 」を追加します。

これはオーバーロードされた関数です。

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

このバイト配列の先頭に、「\0 」で終了する文字列「str 」を追加します。

これはオーバーロードされた関数です。

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

str から始まるlen バイトを、このバイト配列の先頭に追加します。追加されるバイトには、'\0' バイトが含まれる場合があります。

これはオーバーロードされた関数です。

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

バイト配列ch のcount 個分のコピーを、このバイト配列の先頭に追加します。

これはオーバーロードされた関数です。

void QByteArray::push_back(const QByteArray &other)

この関数は、STLとの互換性を確保するために提供されています。これは、append(other) と同等です。

[since 6.0] void QByteArray::push_back(QByteArrayView str)

append(str) と同じです。

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

void QByteArray::push_back(char ch)

append(ch) と同じです。

これはオーバーロードされた関数です。

void QByteArray::push_back(const char *str)

append(str) と同じです。

これはオーバーロードされた関数です。

void QByteArray::push_front(const QByteArray &other)

この関数は、STLとの互換性を確保するために提供されています。これは、prepend(other) と同等です。

[since 6.0] void QByteArray::push_front(QByteArrayView str)

prepend(str) と同じです。

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

void QByteArray::push_front(char ch)

prepend(ch) と同じです。

これはオーバーロードされた関数です。

void QByteArray::push_front(const char *str)

prepend(str) と同じです。

これはオーバーロードされた関数です。

QByteArray::reverse_iterator QByteArray::rbegin()

バイト配列の最初のバイトを指す、STL 形式の逆方向イテレータを、逆順で返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: begin()、crbegin()、rend()も参照してください 。

[noexcept] QByteArray::const_reverse_iterator QByteArray::rbegin() const

これはオーバーロードされた関数です。

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

インデックス位置pos から始まり、len バイトを配列から削除し、その配列への参照を返します。

pos が範囲外の場合、何も起こりません。pos が有効であるものの、pos +len が配列のサイズを超える場合、配列は位置pos で切り詰められます。

例:

QByteArray ba("Montreal");
ba.remove(1, 4);
// ba == "Meal"

要素の削除を行っても、配列の容量は維持され、割り当てられたメモリ量は減りません。余分な容量を削減し、可能な限り多くのメモリを解放するには、配列のサイズに対する最後の変更後に `squeeze()` を呼び出してください。

関連項目: insert()、replace()、およびsqueeze()。

[since 6.5] QByteArray &QByteArray::removeAt(qsizetype pos)

インデックス `pos` の文字を削除します。pos が範囲外の場合(つまり、`pos >=size()` の場合)、この関数は何も行いません。

この関数は Qt 6.5 で導入されました。

remove()も参照してください 。

[since 6.5] QByteArray &QByteArray::removeFirst()

このバイト配列の先頭文字を削除します。バイト配列が空の場合、この関数は何も行いません。

この関数は Qt 6.5 で導入されました。

remove()も参照してください 。

[since 6.1] template <typename Predicate> QByteArray &QByteArray::removeIf(Predicate pred)

バイト配列から、述語 `pred ` が `true` を返すすべてのバイトを削除します。バイト配列への参照を返します。

この関数は Qt 6.1 で導入されました。

remove()も参照してください 。

[since 6.5] QByteArray &QByteArray::removeLast()

このバイト配列の最後の文字を削除します。バイト配列が空の場合、この関数は何も行いません。

この関数は Qt 6.5 で導入されました。

remove()も参照してください 。

QByteArray::reverse_iterator QByteArray::rend()

バイト配列の最後のバイトの直後を指す、STL 形式の逆方向イテレータを、逆順で返します。

警告: 返されたイテレータは 、切り離された場合、またはQByteArray が変更された場合に無効になります。

関連項目: end()、crend()、およびrbegin()。

[noexcept] QByteArray::const_reverse_iterator QByteArray::rend() const

これはオーバーロードされた関数です。

QByteArray QByteArray::repeated(qsizetype times) const

このバイト配列のコピーを、指定された回数だけtimes で繰り返し、返します。

times が1未満の場合、空のバイト配列が返されます。

例:

QByteArray ba("ab");
ba.repeated(4);             // returns "abababab"

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

インデックス位置pos からlen バイトを、バイト配列after で置き換え、このバイト配列への参照を返します。

例:

QByteArray x("Say yes!");
QByteArray y("no");
x.replace(4, 3, y);
// x == "Say no!"

insert() およびremove()も参照してください 。

[since 6.0] QByteArray &QByteArray::replace(QByteArrayView before, QByteArrayView after)

バイト配列 `before ` が現れる箇所をすべて、バイト配列 `after` に置き換えます。

例:

QByteArray ba("colour behaviour flavour neighbour");
ba.replace(QByteArray("ou"), QByteArray("o"));
// ba == "color behavior flavor neighbor"

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

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

バイトbefore のすべての出現箇所を、バイト配列after に置換します。

これはオーバーロードされた関数です。

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

バイト「before 」がどこにでも現れるたびに、それをバイト「after 」に置き換えます。

これはオーバーロードされた関数です。

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

before から始まる「bsize 」バイトのすべての出現箇所を、after から始まる「asize 」バイトに置換します。文字列のサイズはbsize およびasize で指定されているため、これらの文字列には「'\0'」バイトが含まれていてもよく、末尾に「'\0'」で終了する必要はありません。

これはオーバーロードされた関数です。

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

インデックス位置pos から始まるlen バイトを、位置after から始まるalen バイトに置き換えます。挿入されるバイトには、'\0' バイトが含まれる場合があります。

これはオーバーロードされた関数です。

void QByteArray::reserve(qsizetype size)

少なくともsize バイト分のメモリを割り当てようとします。

バイト配列のサイズが事前に分かっている場合は、この関数を呼び出すことができます。また、resize() を頻繁に呼び出す場合は、パフォーマンスが向上する可能性があります。

必要な容量が不明な場合は、通常、size を上限として使用するか、厳密な上限がこの値よりもはるかに大きい場合は、最も可能性の高いサイズの上限推定値を使用することをお勧めします。size が過小評価されている場合、予約されたサイズを超えると必要に応じて配列が拡張されます。その結果、最も楽観的な推定値よりも大きなメモリが割り当てられ、その処理をトリガーした操作の速度が低下する可能性があります。

警告: reserve () はメモリを予約しますが、バイト配列のサイズを変更するものではありません。バイト配列の末尾を超えるデータへのアクセスは、未定義の挙動となります。配列の現在の末尾を超えるメモリにアクセスする必要がある場合は、resize() を使用してください。

この関数の唯一の目的は、QByteArray のメモリ使用量を微調整する手段を提供することです。一般的に、この関数を呼び出す必要が生じることはほとんどありません。

squeeze() およびcapacity()も参照してください 。

void QByteArray::resize(qsizetype size)

バイト配列のサイズをsize バイトに設定します。

size が現在のサイズよりも大きい場合、バイト配列はsize バイトになるよう拡張され、余分なバイトは末尾に追加されます。新しいバイトは初期化されていません。

size が現在のサイズより小さい場合、位置size 以降のバイトはバイト配列から除外されます。

注: resize()は 必要に応じて容量を拡大しますが 、容量を縮小することはありません。余分な容量を削除するには、squeeze() を使用してください。

関連項目: size()、truncate()、squeeze()も参照してください 。

[since 6.4] void QByteArray::resize(qsizetype newSize, char c)

バイト配列のサイズをnewSize バイトに設定します。

newSize が現在のサイズより大きい場合、バイト配列はnewSize バイトになるよう拡張され、追加されたバイトは末尾に追加されます。新しいバイトはc に初期化されます。

newSize が現在のサイズより小さい場合、位置newSize 以降のバイトはバイト配列から除外されます。

注: resize()は 必要に応じて容量を拡大しますが 、容量を縮小することは決してありません。余分な容量を削減するには、squeeze() を使用してください。

この関数は Qt 6.4 で導入されました。

size()、truncate()、およびsqueeze()も参照してください 。

[since 6.8] void QByteArray::resizeForOverwrite(qsizetype size)

バイト配列のサイズをsize バイトに変更します。バイト配列のサイズが大きくなった場合、新たに追加されたバイトは初期化されません。

この動作は `resize(size)` と同一です。

この関数は Qt 6.8 で導入されました。

resize()も参照してください 。

QByteArray QByteArray::right(qsizetype len) const &

このバイト配列の最後のlen バイトを含むバイト配列を返します。

len が範囲外になることがないことが分かっている場合は、新しいコードではlast()を使用してください。こちらの方が高速です。

len がsize() より大きい場合は、バイト配列全体が返されます。

len が0より小さい場合、空のQByteArray を返します。

関連項目: endsWith()、last()、first()、sliced()、chopped()、chop()、truncate()、およびslice()。

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

width のサイズのバイト配列を返します。この配列には、fill のバイトに続いて、このバイト配列が含まれます。

truncate が false で、バイト配列のサイズがwidth より大きい場合、返されるバイト配列はこのバイト配列のコピーとなります。

truncate がtrueで、バイト配列のサイズがwidth を超える場合、結果のバイト配列は位置width で切り捨てられます。

例:

QByteArray x("apple");
QByteArray y = x.rightJustified(8, '.');    // y == "...apple"

関連項目: leftJustified()。

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

整数 `n ` を文字列として表現します。

このバイト配列を、基数base (デフォルトは10)でn を表す文字列に設定し、このバイト配列への参照を返します。基数2から36までがサポートされており、9を超える数字にはアルファベットが使用されます。Aは10、Bは11というように続きます。

例:

QByteArray ba;
int n = 63;
ba.setNum(n);           // ba == "63"
ba.setNum(n, 16);       // ba == "3f"

注: 数値の形式は ローカライズされません。ユーザーのロケールに関係なく、デフォルトのCロケールが使用されます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

関連項目: number() およびtoInt()。

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

これはオーバーロードされた関数です。

toLong()も参照してください 。

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

これはオーバーロードされた関数です。

toLongLong()も参照してください 。

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

これはオーバーロードされた関数です。

toULongLong()も参照してください 。

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

これはオーバーロードされた関数です。

toShort()も参照してください 。

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

これはオーバーロードされた関数です。

toUInt()も参照してください 。

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

これはオーバーロードされた関数です。

toULong()も参照してください 。

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

これはオーバーロードされた関数です。

toUShort()も参照してください 。

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

浮動小数点数 `n ` をテキストとして表現します。

このバイト配列を、n を表す文字列に設定します。この際、format およびprecision が指定されます(QLocale::toString(double, char, int) と同様の意味を持ちます)。そして、このバイト配列への参照を返します。

これはオーバーロードされた関数です。

toDouble() およびQLocale::FloatingPointPrecisionOptionも参照してください 。

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

浮動小数点数 `n ` をテキストとして表現します。

このバイト配列を、n を表す文字列に設定します。この際、format およびprecision が指定されます(これらはQLocale::toString(double, char, int) と同様の意味を持ちます)。そして、このバイト配列への参照を返します。

これはオーバーロードされた関数です。

toFloat() およびQLocale::FloatingPointPrecisionOptionも参照してください 。

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

QByteArray をリセットし、data 配列の最初のsize バイトを使用するようにします。バイトはコピーされません。QByteArray には、data へのポインタが格納されます。呼び出し側は、このQByteArray および変更されていないそのコピーが存在する限り、data が削除または変更されないことを保証する必要があります。

この関数は、fromRawData() の代わりに使用して、既存のQByteArray オブジェクトを再利用し、メモリの再割り当てを節約することができます。

fromRawData()、data()、constData()、nullTerminate()、およびnullTerminated()も参照してください 。

void QByteArray::shrink_to_fit()

この関数は、STLとの互換性を確保するために提供されています。これは、squeeze() と同等です。

QByteArray QByteArray::simplified() const

このバイト配列のコピーを返します。このコピーでは、先頭と末尾から区切り文字が削除され、内部の区切り文字の各シーケンスが単一のスペースに置き換えられています。

ここでいう空白文字とは、Cロケールにおいて標準C++のisspace() 関数がtrue を返す文字を指します。これらは、ASCII文字のタブ '\t'、改行 '\n'、キャリッジリターン '\r'、垂直タブ '\v'、フォームフィード '\f'、およびスペース ' ' です。

例:

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.simplified();
// ba == "lots of whitespace";

関連項目: trimmed()、QChar::SpecialCharacter 、およびSpacing Characters 。

[constexpr noexcept] qsizetype QByteArray::size() const

このバイト配列に含まれるバイト数を返します。

バイト配列の最後のバイトは、位置 size() - 1 にあります。さらに、QByteArray により、位置 size() にあるバイトは常に '\0' となることが保証されているため、data() およびconstData() の戻り値を、'\0' で終了する文字列を期待する関数の引数として使用できます。QByteArray オブジェクトが、末尾の「\0 」終端バイトを含まないraw data から作成された場合、QByteArray は、ディープコピーが作成されない限り、それを自動的に追加しません。

例:

QByteArray ba("Hello");
qsizetype n = ba.size();    // n == 5
ba.data()[0];               // returns 'H'
ba.data()[4];               // returns 'o'
ba.data()[5];               // returns '\0'

isEmpty() およびresize()も参照してください 。

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos, qsizetype n)

このバイト配列を、位置pos から始まり、n バイト分続くように変更し、このバイト配列への参照を返します。

注: pos < 0、n < 0、またはpos +n >size() の場合、動作は 未定義です。

例:

QByteArray x = "Five pineapples"_ba;
x.slice(5);     // x == "pineapples"
x.slice(4, 3);  // x == "app"

この関数は Qt 6.8 で導入されました。

関連項目: sliced()、first()、last()、chopped()、chop()、およびtruncate()。

[since 6.8] QByteArray &QByteArray::slice(qsizetype pos)

このバイト配列を、位置pos からその末尾まで変更し、このバイト配列への参照を返します。

注: pos < 0 またはpos >size() の場合、動作は 未定義です。

これはオーバーロードされた関数です。

この関数は Qt 6.8 で導入されました。

関連項目: sliced()、first()、last()、chopped()、chop()、およびtruncate()。

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos, qsizetype n) const &

このオブジェクトの、位置pos から始まるn バイトを含むバイト配列を返します。

注: pos < 0、n < 0、またはpos +n >size() の場合、動作は 未定義です。

例:

QByteArray x("Five pineapples");
QByteArray y = x.sliced(5, 4);     // y == "pine"
QByteArray z = x.sliced(5);        // z == "pineapples"

これらの関数は Qt 6.0 で導入されました。

関連項目: first()、last()、chopped()、chop()、truncate()、およびslice()。

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) &&

[since 6.0] QByteArray QByteArray::sliced(qsizetype pos) const &

このオブジェクトのpos の位置から始まり、オブジェクトの末尾まで続くバイトを含むバイト配列を返します。

注: pos < 0 またはpos >size() の場合、動作は 未定義です。

これらの関数は Qt 6.0 で導入されました。

関連項目: first()、last()、chopped()、chop()、truncate()、およびslice()。

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

バイト配列を、sep が現れる箇所ごとにサブ配列に分割し、それらの配列のリストを返します。バイト配列のどこにもsep に一致する箇所がない場合、split()はこのバイト配列を含む単一要素のリストを返します。

void QByteArray::squeeze()

配列のデータを格納するために必要のないメモリを解放します。

この関数の唯一の目的は、QByteArray のメモリ使用量を微調整する手段を提供することです。一般的に、この関数を呼び出す必要はほとんどありません。

reserve() およびcapacity()も参照してください 。

[since 6.0] bool QByteArray::startsWith(QByteArrayView bv) const

このバイト配列の先頭が、bv で確認されたバイトシーケンスで始まる場合、true を返します。それ以外の場合は、false を返します。

例:

QByteArray url("ftp://ftp.qt-project.org/");
if (url.startsWith("ftp:"))
    {/*...*/}

この関数は Qt 6.0 で導入されました。

endsWith() およびfirst()も参照してください 。

bool QByteArray::startsWith(char ch) const

このバイト配列の先頭がバイトch で始まる場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

[noexcept] void QByteArray::swap(QByteArray &other)

このバイト配列をother と入れ替えます。この操作は非常に高速で、失敗することはありません。

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

options オプションを使用してエンコードされたバイト配列のコピーを返します。

QByteArray text("Qt is great!");
text.toBase64();        // returns "UXQgaXMgZ3JlYXQh"

QByteArray hello("<p>Hello?</p>");
hello.toBase64(QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals);      // returns "PHA+SGVsbG8/PC9wPg"
hello.toBase64(QByteArray::Base64Encoding);                                       // returns "PHA+SGVsbG8/PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding);                                    // returns "PHA-SGVsbG8_PC9wPg=="
hello.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals);   // returns "PHA-SGVsbG8_PC9wPg"

Base64 エンコードされたデータのエンコードに使用されるアルゴリズムは、RFC 4648 で定義されています。

fromBase64()も参照してください 。

CFDataRef QByteArray::toCFData() const

QByteArray からCFDataを作成します。

呼び出し元は CFData オブジェクトを所有し、その解放の責任を負います。

toRawCFData()、fromCFData()、fromRawCFData()、およびfromRawData()も参照してください 。

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

double 値に変換されたバイト配列を返します。

変換時にオーバーフローが発生した場合は無限大を、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

QByteArray string("1234.56");
bool ok;
double a = string.toDouble(&ok);   // a == 1234.56, ok == true

string = "1234.56 Volt";
a = string.toDouble(&ok);             // a == 0, ok == false

警告: ` QByteArray ` の内容には 、プラス/マイナス記号、科学表記で使用される文字「e」、および小数点を含む有効な数値文字のみを含めることができます。単位やその他の文字を含めると、変換エラーが発生します。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

この関数は、先頭および末尾の空白を無視します。

number()も参照してください 。

[since 6.5] emscripten::val QByteArray::toEcmaUint8Array()

QByteArray から Uint8Array を作成します。

この関数は、QByteArray が所有するヒープメモリからJavaScriptデータバッファへデータを転送します。この関数はArrayBufferを割り当ててそこにデータをコピーし、そのバッファへのUint8Arrayビューを返します。

JavaScript オブジェクトはデータのコピーを保持するため、コピーが完了した後は、この `QByteArray ` を安全に削除できます。

QByteArray byteArray = "test";
emscripten::val uint8array = byteArray.toEcmaUint8Array();

この関数は Qt 6.5 で導入されました。

fromEcmaUint8Array()も参照してください 。

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

float 値に変換されたバイト配列を返します。

変換時にオーバーフローが発生した場合は無限大を、その他の理由(アンダーフローなど)で変換に失敗した場合は0.0を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

QByteArray string("1234.56");
bool ok;
float a = string.toFloat(&ok);    // a == 1234.56, ok == true

string = "1234.56 Volt";
a = string.toFloat(&ok);              // a == 0, ok == false

警告: ` QByteArray ` の内容には 、プラス/マイナス記号、科学表記で使用される文字「e」、および小数点を含む、有効な数値文字のみを含めることができます。単位やその他の文字を含めると、変換エラーが発生します。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、`QLocale ` を使用してください。

この関数は、先頭および末尾の空白を無視します。

number()も参照してください 。

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

バイト配列の16進数エンコードされたコピーを返します。

16進数エンコーディングには、数字の0~9と文字のa~fが使用されます。

separator が'\0'でない場合、16進数のバイトの間に区切り文字が挿入されます。

例:

QByteArray macAddress = QByteArray::fromHex("123456abcdef");
macAddress.toHex(':'); // returns "12:34:56:ab:cd:ef"
macAddress.toHex(0);   // returns "123456abcdef"

fromHex()も参照してください 。

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

base を使用して、バイタ配列をint に変換したものを返します。ここで、基数は で指定され、デフォルトは 10 です。基数 0 および 2 から 36 までがサポートされており、9 を超える数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で「0b」で始まる場合は2進数(基数2)とみなされます。それ以外で「0」で始まる場合は8進数(基数8)とみなされます。それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

QByteArray str("FF");
bool ok;
int hex = str.toInt(&ok, 16);     // hex == 255, ok == true
int dec = str.toInt(&ok, 10);     // dec == 0, ok == false

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。

number()も参照してください 。

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

long base の整数に変換されたバイト配列を返します。基数は で指定され、デフォルトは10です。基数0および2から36までがサポートされており、9を超える数字にはアルファベットが使用されます。Aは10、Bは11というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で、先頭が「0b」であれば2進数(基数2)とみなされます。それ以外で、先頭が「0」であれば8進数(基数8)とみなされます。それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

QByteArray str("FF");
bool ok;
long hex = str.toLong(&ok, 16);   // hex == 255, ok == true
long dec = str.toLong(&ok, 10);   // dec == 0, ok == false

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケール依存の変換を行うには、QLocale を使用してください。

注: 「0b」プレフィックスのサポートは Qt 6.4 で追加されました。

number()も参照してください 。

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

base を使用して、バイタ配列をlong long に変換したものを返します。ここで、 はデフォルトで 10 です。基数 0 および 2 から 36 までがサポートされており、9 より大きい数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が 0 の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は、16進数(基数 16)とみなされます。 それ以外の場合で「0b」で始まる場合は、2進数(基数2)とみなされます。それ以外で「0」で始まる場合は、8進数(基数8)とみなされます。それ以外の場合は、10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは 、Qt 6.4 で追加されました。

number()も参照してください 。

QByteArray QByteArray::toLower() const

バイト配列のコピーを返し、その中の各ASCII大文字が小文字に変換されます。

例:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toLower();
// y == "qt by the qt company"

関連項目: isLower()、toUpper()、およびCharacter Case 。

NSData *QByteArray::toNSData() const

QByteArray からNSDataを作成します。

NSDataオブジェクトは自動解放されます。

fromNSData()、fromRawNSData()、fromRawData()、およびtoRawNSData()も参照してください 。

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

このバイト配列の、URI/URL形式のパーセントエンコードされたコピーを返します。percent パラメータを使用すると、デフォルトの「%」文字を別の文字に上書きすることができます。

デフォルトでは、この関数は以下のいずれにも該当しないすべてのバイトをエンコードします:

ALPHA(「a」から「z」および「A」から「Z」) / DIGIT(0 から 9) / 「-」 / 「.」 / 「_」 / 「~」

バイトをエンコードしないようにするには、exclude に引数として渡してください。バイトを強制的にエンコードするには、include に引数として渡してください。percent 文字は常にエンコードされます。

例:

QByteArray text= "{怪しい文字列?}";
QByteArray ba=text.toPercentEncoding("{}", "s");
qDebug("%s", ba.constData());
// 「{a fi%73hy %73tring%3F}」と出力する

16進エンコーディングでは、数字の0~9と大文字のA~Fが使用されます。

fromPercentEncoding() およびQUrl::toPercentEncoding()も参照してください 。

CFDataRef QByteArray::toRawCFData() const

QByteArray のバイトを使用するCFDataを構築します。

QByteArray のバイトデータはコピーされません。

呼び出し元は、この CFData オブジェクトが存在する限り、QByteArray が削除または変更されないことを保証します。

toCFData()、fromRawCFData()、fromCFData()、およびfromRawData()も参照してください 。

NSData *QByteArray::toRawNSData() const

QByteArray のバイトを使用するNSDataを生成します。

QByteArray のバイトはコピーされません。

呼び出し元は、この NSData オブジェクトが存在する限り、QByteArray が削除または変更されないことを保証します。

fromRawNSData()、fromNSData()、fromRawData()、およびtoNSData()も参照してください 。

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

short base を使用して、ベース (デフォルトは10)に変換されたバイト配列を返します。ベース0および2から36までがサポートされており、9を超える数字にはアルファベットが使用されます。Aは10、Bは11というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合、「0b」で始まる場合は2進数(基数2)とみなされます。それ以外の場合、「0」で始まる場合は8進数(基数8)とみなされます。それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは 、Qt 6.4で追加されました。

number()も参照してください 。

std::string QByteArray::toStdString() const

このQByteArray に含まれるデータを持つstd::stringオブジェクトを返します。

この演算子は、主に `QByteArray ` を `std::string` オブジェクトを受け取る関数に渡す際に役立ちます。

fromStdString() およびQString::toStdString()も参照してください 。

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

base を使用して、バイタ配列をunsigned int に変換したものを返します。ここで、 はデフォルトで 10 です。基数 0 および 2 から 36 までがサポートされており、9 を超える数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で「0b」で始まる場合は2進数(基数2)とみなされ、それ以外で「0」で始まる場合は8進数(基数8)とみなされ、それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで、成功は*ok をtrue に設定することで報告されます。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは 、Qt 6.4で追加されました。

number()も参照してください 。

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

base を使用して、バイタ配列をunsigned long int に変換したものを返します。ここで、base はデフォルトで 10 です。基数 0 および 2 から 36 までがサポートされており、9 より大きい数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で「0b」で始まる場合は2進数(基数2)とみなされます。それ以外で「0」で始まる場合は8進数(基数8)とみなされます。それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、*ok をfalse に設定して失敗を報告し、*ok をtrue に設定して成功を報告します。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは Qt 6.4 で追加されました。

number()も参照してください 。

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

base を使用して、バイタ配列をunsigned long long に変換したものを返します。ここで、 はデフォルトで 10 です。基数 0 および 2 から 36 までがサポートされており、9 を超える数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で「0b」で始まる場合は2進数(基数2)とみなされます。それ以外で「0」で始まる場合は8進数(基数8)とみなされます。それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」という接頭辞のサポートは 、Qt 6.4で追加されました。

number()も参照してください 。

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

unsigned short base を使用して、基数 (デフォルトは 10)に変換されたバイト配列を返します。基数 0 および 2 から 36 までがサポートされており、9 を超える数字にはアルファベットが使用されます。A は 10、B は 11 というように続きます。

base が0の場合、基数は以下のルールに従って自動的に決定されます。バイト配列が「0x」で始まる場合は16進数(基数16)とみなされます。 それ以外の場合で「0b」で始まる場合は2進数(基数2)とみなされ、それ以外で「0」で始まる場合は8進数(基数8)とみなされ、それ以外の場合は10進数とみなされます。

変換に失敗した場合は 0 を返します。

ok がnullptr でない場合、失敗は*ok をfalse に設定することで報告され、成功は*ok をtrue に設定することで報告されます。

注: 数値の変換は 、ユーザーのロケールに関係なく、デフォルトの C ロケールで行われます。数値と文字列間のロケールに応じた変換を行うには、QLocale を使用してください。

注: 「0b」プレフィックスのサポートは Qt 6.4 で追加されました。

number()も参照してください 。

QByteArray QByteArray::toUpper() const

バイト配列のコピーを返し、その中に含まれる各ASCII小文字を大文字に変換したものを格納します。

例:

QByteArray x("Qt by THE QT COMPANY");
QByteArray y = x.toUpper();
// y == "QT BY THE QT COMPANY"

関連項目: isUpper()、toLower()、およびCharacter Case 。

QByteArray QByteArray::trimmed() const

このバイト配列のコピーを返し、先頭と末尾から区切り文字が削除されます。

空白文字とは、Cロケールにおいて標準C++のisspace() 関数がtrue を返すものを指します。これらは、ASCII文字のタブ '\t'、改行 '\n'、キャリッジリターン '\r'、垂直タブ '\v'、フォームフィード '\f'、およびスペース ' ' です。

例:

QByteArray ba("  lots\t of\nwhitespace\r\n ");
ba = ba.trimmed();
// ba == "lots\t of\nwhitespace";

simplified() とは異なり、trimmed() は内部の空白を変更しません。

関連項目: simplified()、QChar::SpecialCharacter 、およびSpacing Characters 。

void QByteArray::truncate(qsizetype pos)

インデックス位置pos でバイト配列を切り詰めます。

pos が配列の末尾を超えている場合、何も起こりません。

例:

QByteArray ba("Stockholm");
ba.truncate(5);             // ba == "Stock"

chop()、resize()、およびfirst()も参照してください 。

QByteArray::operator const char *() const

QByteArray::operator const void *() const

注: 新しいコードでは、代わりに `constData()`を使用してください 。

バイト配列に格納されているデータへのポインタを返します。このポインタを使用すると、配列を構成するバイトにアクセスできます。データは '\0' で終了します。

detachが発生せず、QByteArray が変更されない限り、このポインタは有効です。

この演算子は、主に `const char *` を受け取る関数にバイト配列を渡す際に役立ちます。

アプリケーションのコンパイル時に `QT_NO_CAST_FROM_BYTEARRAY ` を定義することで、この演算子を無効にすることができます。

注:QByteArray には、「'\0 」を含む任意のバイト値を格納できますが、char * 引数を受け取るほとんどの関数は、データが最初に遭遇した「'\0 」で終了すると想定しています。

constData()も参照してください 。

[noexcept, since 6.10] QByteArray::operator std::string_view() const

この `QByteArray ` オブジェクトを `std::string_view ` オブジェクトに変換します。返される文字列ビューは、バイト配列全体をカバーします。

この関数は Qt 6.10 で導入されました。

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

バイト配列 `ba ` をこのバイト配列の末尾に追加し、このバイト配列への参照を返します。

例:

QByteArray x("free");
QByteArray y("dom");
x += y;
// x == "freedom"

注:QByteArray は暗黙的に共有されるクラスです。したがって、空のバイト配列に追加する場合、そのバイト配列はba に保持されているデータを単に共有することになります。この場合、データのコピーは行われないため、定数時間かかります。共有インスタンスが変更された場合は、コピーが行われ(コピー・オン・ライト)、線形時間がかかります。

追加先のバイト配列が空でない場合、データのディープコピーが行われ、線形時間かかります。

QByteArray は、各追加操作ごとに再割り当てを行うことなくバイト配列を拡張できるよう、データの末尾に余分な領域を事前に割り当てているため、この操作では通常、割り当てのオーバーヘッドは発生しません。

append() およびprepend()も参照してください 。

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

このバイト配列の末尾にバイトch を追加し、このバイト配列への参照を返します。

これはオーバーロードされた関数です。

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

「\0 」で終了する文字列str を、このバイト配列の末尾に追加し、このバイト配列への参照を返します。

これはオーバーロードされた関数です。

[noexcept] QByteArray &QByteArray::operator=(QByteArray &&other)

other をこのQByteArray インスタンスに割り当てます。

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

このバイト配列にother を割り当て、このバイト配列への参照を返します。

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

このバイト配列にstr を代入します。

str はヌル終端文字列を指していると見なされ、その長さは動的に決定されます。

これはオーバーロードされた関数です。

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

インデックス位置i にあるバイトを、変更可能な参照として返します。

i i は、バイト配列内の有効なインデックス位置でなければなりません(つまり、0 <= < ())。size

例:

QByteArray ba("Hello, world");
cout << ba[0]; // prints H
ba[7] = 'W';
// ba == "Hello, World"

at()も参照してください 。

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

(i) と同様です。

これはオーバーロードされた関数です。

関連する非メンバー

[since 6.1] template <typename T> qsizetype erase(QByteArray &ba, const T &t)

バイト配列 `ba` から、t と等しいすべての要素を削除します。削除された要素がある場合は、その数を返します。

この関数は Qt 6.1 で導入されました。

erase_ifも参照してください 。

[since 6.1] template <typename Predicate> qsizetype erase_if(QByteArray &ba, Predicate pred)

バイト配列 `ba` から、述語 `pred ` が真を返すすべての要素を削除します。削除された要素がある場合は、その数を返します。

この関数は Qt 6.1 で導入されました。

eraseも参照してください 。

quint16 qChecksum(QByteArrayView data, Qt::ChecksumType standard = Qt::ChecksumIso3309)

data の CRC-16 チェックサムを返します。

このチェックサムはバイト順(エンディアン)に依存せず、standard で公開されているアルゴリズムに従って計算されます。デフォルトでは、ISO 3309(Qt::ChecksumIso3309 )で公開されているアルゴリズムが使用されます。

注:この関数は 、CRC-16-CCITTアルゴリズムの16ビット・キャッシュ保存型(16エントリ・テーブル)実装です。

QByteArray qCompress(const QByteArray &data, int compressionLevel = -1)

data のバイト配列を圧縮し、圧縮されたデータを新しいバイト配列として返します。

compressionLevel パラメータは、使用する圧縮率を指定します。有効な値は 0 から 9 までで、9 は最も高い圧縮率(つまり、圧縮後のデータサイズが最小)に対応しますが、その代わりにアルゴリズムの実行速度が低下します。 値が小さいほど(8、7、…、1)、圧縮率は徐々に低下しますが、処理速度はわずかに向上します。値 0 は、圧縮を一切行わないことを意味します。デフォルト値は -1 で、zlib のデフォルトの圧縮率を指定します。

qUncompress (const QByteArray &data)も参照してください 。

QByteArray qCompress(const uchar *data, qsizetype nbytes, int compressionLevel = -1)

data の先頭nbytes を、圧縮レベルcompressionLevel で圧縮し、圧縮されたデータを新しいバイト配列として返します。

これはオーバーロードされた関数です。

QByteArray qUncompress(const QByteArray &data)

data のバイト配列を解凍し、解凍後のデータを含む新しいバイト配列を返します。

入力データが破損していた場合は、空のQByteArray を返します。

この関数は、このバージョンおよびそれ以前の Qt バージョン(この機能が追加された Qt 3.1 まで)の `qCompress()` で圧縮されたデータを解凍します。

注:この関数を使用して、zlib を使用して圧縮された外部データを解凍する場合は、まず、データを含むバイト配列の先頭に 4 バイトのヘッダーを付加する必要があります。 ヘッダーには、非圧縮データの予想される長さ(バイト単位)を、符号なしのビッグエンディアン 32 ビット整数として記述する必要があります。ただし、この数値は出力バッファの初期サイズに関する単なる目安に過ぎません。 指定されたサイズが結果を格納するには小さすぎる場合でも、出力が収まるか、システムのメモリが不足するまで、出力バッファのサイズは増大し続けます。したがって、32 ビットのヘッダーにもかかわらず、64 ビットプラットフォームでは、この関数は 4GiB を超える出力を生成する可能性があります。

注: Qt 6.5 以前のバージョンでは 、2GiB を超えるデータに対して動作が不安定でした。Qt 6.0 以前のバージョンでは、まったく動作しませんでした。

qCompress()も参照してください 。

QByteArray qUncompress(const uchar *data, qsizetype nbytes)

data の先頭nbytes 分を解凍し、解凍されたデータを含む新しいバイト配列を返します。

これはオーバーロードされた関数です。

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

安全なstrcmp() 関数。

str1 とstr2 を比較します。str1 がstr2 より小さい場合は負の値を、str1 がstr2 と等しい場合は 0 を、str1 がstr2 より大きい場合は正の値を返します。

両方の文字列がnullptr である場合、それらは等しいとみなされます。それ以外の場合、いずれかがnullptr であるときは、もう一方よりも小さいものと扱われます(たとえもう一方が空文字列であっても)。

qstrncmp()、qstricmp()、qstrnicmp()、Character Case 、およびQByteArray::compare()も参照してください 。

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

src から「\0 」までのすべての文字をdst にコピーし、dst へのポインタを返します。src がnullptr の場合、直ちにnullptr を返します。

この関数は、dst がsrc の内容を格納するのに十分な大きさであることを前提としています。

注: dst とsrc が重複している場合 、挙動は未定義となります。

qstrncpy()も参照してください 。

char *qstrdup(const char *src)

同じ文字列を返します。

src のコピー用の領域を割り当て、コピーを作成し、そのコピーへのポインタを返します。src がnullptr の場合、直ちにnullptr を返します。

所有権は呼び出し元に引き渡されるため、返された文字列はdelete[] を使用して削除する必要があります。

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

安全な `stricmp() ` 関数。

str1 とstr2 を比較し、ASCII 文字の大文字・小文字の違いは無視します。

str1 がstr2 より小さい場合は負の値を、str1 がstr2 と等しい場合は 0 を、str1 がstr2 より大きい場合は正の値を返します。

両方の文字列がnullptr である場合、それらは等しいとみなされます。それ以外の場合、いずれかがnullptr であるときは、もう一方よりも小さいと扱われます(たとえもう一方が空文字列であっても)。

qstrcmp()、qstrncmp()、qstrnicmp()、Character Case 、およびQByteArray::compare()も参照してください 。

size_t qstrlen(const char *str)

安全な `strlen() ` 関数。

終端の「\0 」に先行する文字数を返します。str がnullptr の場合、0を返します。

qstrnlen()も参照してください 。

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

安全なstrncmp() 関数。

str1 とstr2 の最大len バイト分を比較します。

str1 がstr2 より小さい場合は負の値を、str1 がstr2 と等しい場合は 0 を、str1 がstr2 より大きい場合は正の値を返します。

両方の文字列がnullptr である場合、それらは等しいとみなされます。それ以外の場合、いずれかがnullptr であるときは、もう一方よりも小さいものと扱われます(たとえもう一方が空文字列であったり、len が0であったりする場合でも)。

qstrcmp()、qstricmp()、qstrnicmp()、Character Case 、およびQByteArray::compare()も参照してください 。

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

安全なstrncpy() 関数。

src から最大len バイトを (len または終端の '\0' のいずれか早い方で停止し)、dst にコピーします。dst がnullptr である場合、またはlen が 0 である場合を除き、dst が '\0' で終端されていることを保証します。src がnullptr である場合はnullptr を返し、それ以外の場合はdst を返します。

この関数は、dst が少なくともlen 文字の長さであることを前提としています。

注: dst とsrc が重複する場合 、挙動は未定義です。

注: strncpy()とは異なり 、この関数はdst のlen バイトすべてに '\0' を書き込むのではなく、終端の '\0' の後に処理を停止します。この点において、C11 の strncpy_s() と似ています。

qstrcpy()も参照してください 。

int qstrnicmp(const char *s1, const char *s2, size_t len)

安全なstrnicmp() 関数。

s1 とs2 の最大len バイト分を比較し、ASCII 文字の大小の違いは無視します。

s1 がs2 より小さい場合は負の値を、s1 がs2 と等しい場合は0を、s1 がs2 より大きい場合は正の値を返します。

両方の文字列がnullptr である場合は、それらは等しいとみなされます。それ以外の場合、いずれかがnullptr であるときは、もう一方よりも小さいと扱われます(たとえもう一方が空文字列であったり、len が 0 であったりする場合でも)。

qstrcmp()、qstrncmp()、qstricmp()、Character Case 、およびQByteArray::compare()も参照してください 。

size_t qstrnlen(const char *str, size_t maxlen)

安全な `strnlen() ` 関数。

終端の「\0 」に先行する文字数を返します。ただし、最大値はmaxlen です。str がnullptr の場合、0を返します。

qstrlen()も参照してください 。

[noexcept] bool operator!=(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` と等しくない場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator!=(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、`'\0` で終了する文字列 `rhs` と等しくない場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator!=(const char *const &lhs, const QByteArray &rhs)

「'\0 」で終了する文字列 `lhs ` がバイト配列 `rhs` と等しくない場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept, since 6.4] QByteArray operator""_ba(const char *str, size_t size)

文字列リテラル `str` の先頭 `size ` 文字から `QByteArray ` を作成するリテラル演算子です。

QByteArray はコンパイル時に生成され、生成された文字列データはコンパイル済みオブジェクトファイルの読み取り専用セグメントに格納されます。重複するリテラルは、同じ読み取り専用メモリを共有する場合があります。この機能はQByteArrayLiteral と互換性がありますが、コード内に多くの文字列リテラルが存在する場合、入力の手間を省くことができます。

以下のコードは、QByteArray を作成します:

using namespace Qt::StringLiterals;

auto str = "hello"_ba;

この関数は Qt 6.4 で導入されました。

Qt::Literals::StringLiteralsも参照してください 。

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

バイト配列 `a1 ` とバイト配列 `a2` を連結した結果となるバイト配列を返します。

QByteArray::operator+=()も参照してください 。

[since 6.9] QByteArray operator+(QByteArrayView lhs, const QByteArray &rhs)

[since 6.9] QByteArray operator+(const QByteArray &lhs, QByteArrayView rhs)

lhs とrhs を連結した結果となるバイト配列を返します。

これらの関数は Qt 6.9 で導入されました。

QByteArray::operator+=()も参照してください 。

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

バイト配列 `a1 ` とバイト配列 `a2` を連結した結果となるバイト配列を返します。

これはオーバーロードされた関数です。

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

バイト配列 `a1 ` とバイト `a2` を連結した結果となるバイト配列を返します。

これはオーバーロードされた関数です。

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

バイト配列a1 と、'\0'で終了する文字列a2 を連結した結果となるバイト配列を返します。

これはオーバーロードされた関数です。

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

'\0'で終了する文字列 `a1 ` とバイト配列 `a2` を連結した結果となるバイト配列を返します。

これはオーバーロードされた関数です。

[noexcept] bool operator<(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` より字句的に小さい場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator<(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、'\0' で終了する文字列 `rhs` よりも字句的に小さい場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator<(const char *const &lhs, const QByteArray &rhs)

「\0 」で終了する文字列 `lhs ` が、バイト配列 `rhs` よりも字句的に小さい場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

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

バイト配列 `ba ` をストリーム `out ` に書き込み、そのストリームへの参照を返します。

「Qt データ型のシリアライズ」も参照してください 。

[noexcept] bool operator<=(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` よりもレキシカルに小さいか等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator<=(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、`'\0'` で終了する文字列 `rhs` よりも辞書順で小さいか等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator<=(const char *const &lhs, const QByteArray &rhs)

「\0 」で終了する文字列 `lhs ` が、バイト配列 `rhs` よりも辞書順で小さいか等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator==(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` と等しい場合は `true ` を返し、そうでない場合は `false` を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator==(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、`'\0` で終了する文字列 `rhs` と等しい場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator==(const char *const &lhs, const QByteArray &rhs)

「\0 」で終了する文字列 `lhs ` がバイト配列 `rhs` と等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` より字句的に大きい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、`'\0`で終了する文字列 `rhs` よりも字句的に大きい場合、true を返します。そうでない場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>(const char *const &lhs, const QByteArray &rhs)

「\0 」で終了する文字列 `lhs ` がバイト配列 `rhs` よりも字句的に大きい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>=(const QByteArray &lhs, const QByteArray &rhs)

バイト配列 `lhs ` がバイト配列 `rhs` よりも辞書順で大きい、または等しい場合、`true ` を返します。それ以外の場合は `false` を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>=(const QByteArray &lhs, const char *const &rhs)

バイト配列 `lhs ` が、`'\0'` で終了する文字列 `rhs` よりも辞書順で大きい、または等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

[noexcept] bool operator>=(const char *const &lhs, const QByteArray &rhs)

「\0 」で終了する文字列 `lhs ` が、バイト配列 `rhs` よりも字句的に大きいか等しい場合、true を返します。それ以外の場合は、false を返します。

これはオーバーロードされた関数です。

QByteArray::compare()も参照してください 。

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

ストリーム `in ` からバイト配列を読み取り、ba に格納し、そのストリームへの参照を返します。

「Qtデータ型のシリアル化」も参照してください 。

マクロのドキュメント

QByteArrayLiteral(ba)

このマクロは、コンパイル時に文字列リテラル `ba ` から `QByteArray ` のデータを生成します。この場合、これをもとに `QByteArray ` を作成する処理はコストがかからず、生成されたバイト配列データはコンパイル済みオブジェクトファイルの読み取り専用セグメントに格納されます。

例えば:

QByteArray ba = QByteArrayLiteral("byte array contents");

二重引用符で囲まれた通常のC++文字列リテラルではなく、QByteArrayLiteralを使用することで、コンパイル時に既知のデータからQByteArray インスタンスを作成する処理を大幅に高速化できます。

QStringLiteralも参照してください 。

QT_NO_CAST_FROM_BYTEARRAY

QByteArray から const char * または const void * への自動変換を無効にします。

「 QT_NO_CAST_TO_ASCII 」および「QT_NO_CAST_FROM_ASCII 」も参照してください 。

[since 6.8] QT_NO_QSNPRINTF

このマクロを定義すると、qsnprintf() および qvsnprintf() 関数が使用できなくなります。これらの関数を無効にする理由については、各関数のドキュメントを参照してください。

このマクロは Qt 6.8 で導入されました。

qsnprintf() およびqvsnprintf()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.