QByteArray Class
QByteArray 클래스는 바이트 배열을 제공합니다. 더 보기...
| 헤더: | #include <QByteArray> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- 사용 중단된 멤버
- QByteArray는 ‘암시적 공유 클래스 ’ 및 ‘문자열 데이터용 클래스’에 속합니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
QByteArray 비교
| 범주 | 비교 가능한 유형 | 설명 |
|---|---|---|
| strong | QByteArray | |
| strong | const char *. | |
| strongQByteArraystrongconst char *. , char16_t, xml-ph-0000@deepl.internal , | QChar, 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(QByteArrayView v) |
| QByteArray(const char*data, qsizetype size = -1) | |
| QByteArray(qsizetype size, Qt::Initialization) | |
| QByteArray(qsizetype size, char ch) | |
| QByteArray(const QByteArray&other) | |
| QByteArray(QByteArray&&other) | |
| ~QByteArray() | |
| QByteArray & | append(const QByteArray&ba) |
| QByteArray & | append(QByteArrayView data) |
| QByteArray & | append(char ch) |
| QByteArray & | append(const char*str) |
| QByteArray & | append(const char*str, qsizetype len) |
| QByteArray & | append(qsizetype count, char ch) |
(since 6.6) QByteArray & | assign(QByteArrayView v) |
(since 6.6) QByteArray & | assign(InputIterator first, InputIterator last) |
(since 6.6) QByteArray & | assign(qsizetype n, char c) |
| char | at(qsizetype i) 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(qsizetype n) |
| QByteArray | chopped(qsizetype len) && |
| QByteArray | chopped(qsizetype len) const & |
| void | clear() |
(since 6.0) int | compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QByteArray::const_iterator | constBegin() const |
| const char * | constData() const |
| QByteArray::const_iterator | constEnd() const |
(since 6.0) bool | contains(QByteArrayView bv) const |
| bool | contains(char ch) const |
(since 6.0) qsizetype | count(QByteArrayView bv) const |
| qsizetype | count(char ch) 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(QByteArrayView bv) const |
| bool | endsWith(char ch) const |
(since 6.1) QByteArray::iterator | erase(QByteArray::const_iterator first, QByteArray::const_iterator last) |
(since 6.5) QByteArray::iterator | erase(QByteArray::const_iterator it) |
| QByteArray & | fill(char ch, qsizetype size = -1) |
(since 6.0) QByteArray | first(qsizetype n) && |
(since 6.0) QByteArray | first(qsizetype n) const & |
| char & | front() |
| char | front() const |
(since 6.0) qsizetype | indexOf(QByteArrayView bv, qsizetype from = 0) const |
| qsizetype | indexOf(char ch, qsizetype from = 0) const |
(since 6.0) QByteArray & | insert(qsizetype i, QByteArrayView data) |
| QByteArray & | insert(qsizetype i, const QByteArray&data) |
| QByteArray & | insert(qsizetype i, const char*s) |
| QByteArray & | insert(qsizetype i, char ch) |
| QByteArray & | insert(qsizetype i, const char*data, qsizetype len) |
| QByteArray & | insert(qsizetype i, qsizetype count, char ch) |
| bool | isEmpty() const |
| bool | isLower() const |
| bool | isNull() const |
| bool | isUpper() const |
(since 6.3) bool | isValidUtf8() const |
(since 6.0) QByteArray | last(qsizetype n) && |
(since 6.0) QByteArray | last(qsizetype n) const & |
(since 6.0) qsizetype | lastIndexOf(QByteArrayView bv, qsizetype from) const |
(since 6.2) qsizetype | lastIndexOf(QByteArrayView bv) const |
| qsizetype | lastIndexOf(char ch, qsizetype from = -1) const |
| QByteArray | left(qsizetype len) && |
| QByteArray | left(qsizetype len) const & |
| QByteArray | leftJustified(qsizetype width, char fill = ' ', bool truncate = false) const |
| qsizetype | length() const |
(since 6.8) qsizetype | max_size() const |
| QByteArray | mid(qsizetype pos, qsizetype len = -1) && |
| QByteArray | mid(qsizetype pos, qsizetype len = -1) const & |
(since 6.10) QByteArray & | nullTerminate() |
(since 6.10) QByteArray | nullTerminated() && |
(since 6.10) QByteArray | nullTerminated() const & |
(since 6.4) QByteArray | percentDecoded(char percent = '%') const & |
(since 6.11) QByteArray | percentDecoded(char percent = '%') && |
| QByteArray & | prepend(QByteArrayView ba) |
| QByteArray & | prepend(char ch) |
| QByteArray & | prepend(const QByteArray&ba) |
| QByteArray & | prepend(const char*str) |
| QByteArray & | prepend(const char*str, qsizetype len) |
| QByteArray & | prepend(qsizetype count, char ch) |
| void | push_back(const QByteArray&other) |
(since 6.0) void | push_back(QByteArrayView str) |
| void | push_back(char ch) |
| void | push_back(const char*str) |
| void | push_front(const QByteArray&other) |
(since 6.0) void | push_front(QByteArrayView str) |
| void | push_front(char ch) |
| void | push_front(const char*str) |
| QByteArray::reverse_iterator | rbegin() |
| QByteArray::const_reverse_iterator | rbegin() const |
| QByteArray & | remove(qsizetype pos, qsizetype len) |
(since 6.5) QByteArray & | removeAt(qsizetype pos) |
(since 6.5) QByteArray & | removeFirst() |
(since 6.1) QByteArray & | removeIf(Predicate pred) |
(since 6.5) QByteArray & | removeLast() |
| QByteArray::reverse_iterator | rend() |
| QByteArray::const_reverse_iterator | rend() const |
| QByteArray | repeated(qsizetype times) const |
| QByteArray & | replace(qsizetype pos, qsizetype len, QByteArrayView after) |
(since 6.0) QByteArray & | replace(QByteArrayView before, QByteArrayView after) |
| QByteArray & | replace(char before, QByteArrayView after) |
| QByteArray & | replace(char before, char after) |
| QByteArray & | replace(const char*before, qsizetype bsize, const char*after, qsizetype asize) |
| QByteArray & | replace(qsizetype pos, qsizetype len, const char*after, qsizetype alen) |
| void | reserve(qsizetype size) |
| void | resize(qsizetype size) |
(since 6.4) void | resize(qsizetype newSize, char c) |
(since 6.8) void | resizeForOverwrite(qsizetype size) |
| QByteArray | right(qsizetype len) && |
| QByteArray | right(qsizetype len) const & |
| QByteArray | rightJustified(qsizetype width, char fill = ' ', bool truncate = false) const |
| QByteArray & | setNum(int n, int base = 10) |
| QByteArray & | setNum(long n, int base = 10) |
| QByteArray & | setNum(qlonglong n, int base = 10) |
| QByteArray & | setNum(qulonglong n, int base = 10) |
| QByteArray & | setNum(short n, int base = 10) |
| QByteArray & | setNum(uint n, int base = 10) |
| QByteArray & | setNum(ulong n, int base = 10) |
| QByteArray & | setNum(ushort n, int base = 10) |
| QByteArray & | setNum(double n, char format = 'g', int precision = 6) |
| QByteArray & | setNum(float n, char format = 'g', int precision = 6) |
| QByteArray & | setRawData(const char*data, qsizetype size) |
| void | shrink_to_fit() |
| QByteArray | simplified() const |
| qsizetype | size() const |
(since 6.8) QByteArray & | slice(qsizetype pos, qsizetype n) |
(since 6.8) QByteArray & | slice(qsizetype pos) |
(since 6.0) QByteArray | sliced(qsizetype pos, qsizetype n) && |
(since 6.0) QByteArray | sliced(qsizetype pos, qsizetype n) const & |
(since 6.0) QByteArray | sliced(qsizetype pos) && |
(since 6.0) QByteArray | sliced(qsizetype pos) const & |
| QList<QByteArray> | split(char sep) const |
| void | squeeze() |
(since 6.0) bool | startsWith(QByteArrayView bv) const |
| bool | startsWith(char ch) const |
| void | swap(QByteArray&other) |
| QByteArray | toBase64(QByteArray::Base64Options options = 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(char separator = '\0') const |
| int | toInt(bool*ok = nullptr, int base = 10) const |
| long | toLong(bool*ok = nullptr, int base = 10) const |
| qlonglong | toLongLong(bool*ok = nullptr, int base = 10) const |
| QByteArray | toLower() const |
| NSData * | toNSData() const |
| QByteArray | toPercentEncoding(const QByteArray&exclude = QByteArray(), const QByteArray&include = QByteArray(), char percent = '%') const |
| CFDataRef | toRawCFData() const |
| NSData * | toRawNSData() const |
| short | toShort(bool*ok = nullptr, int base = 10) const |
| std::string | toStdString() const |
| uint | toUInt(bool*ok = nullptr, int base = 10) const |
| ulong | toULong(bool*ok = nullptr, int base = 10) const |
| qulonglong | toULongLong(bool*ok = nullptr, int base = 10) const |
| ushort | toUShort(bool*ok = nullptr, int base = 10) const |
| QByteArray | toUpper() const |
| QByteArray | trimmed() const |
| void | truncate(qsizetype pos) |
| operator const char *() const | |
| operator const void *() const | |
(since 6.10) | operator std::string_view() const |
| QByteArray & | operator+=(const QByteArray&ba) |
| QByteArray & | operator+=(char ch) |
| QByteArray & | operator+=(const char*str) |
| QByteArray & | operator=(QByteArray&&other) |
| QByteArray & | operator=(const QByteArray&other) |
| QByteArray & | operator=(const char*str) |
| char & | operator[](qsizetype i) |
| char | operator[](qsizetype i) 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) |
매크로
| QByteArrayLiteral(ba) | |
| QT_NO_CAST_FROM_BYTEARRAY | |
(since 6.8) | QT_NO_QSNPRINTF |
상세 설명
QByteArray는 원시 바이트(‘\0 ’ 포함)와 기존의 8비트 ‘\0 ’로 끝나는 문자열을 모두 저장하는 데 사용할 수 있습니다. QByteArray를 사용하는 것이 const char * 를 사용하는 것보다 훨씬 편리합니다. 내부적으로, QByteArray는 데이터 뒤에 항상 '\0' 종결자가 붙도록 보장하며, 암시적 공유 (쓰기 시 복사)를 사용하여 메모리 사용량을 줄이고 불필요한 데이터 복사를 방지합니다.
QByteArray 외에도 Qt는 문자열 데이터를 저장하기 위한 QString 클래스를 제공합니다. 대부분의 경우, ` QString ` 클래스를 사용하는 것이 좋습니다. 이 클래스는 내용을 유니코드 텍스트(UTF-16으로 인코딩됨)로 인식하는 반면, `QByteArray`는 저장된 바이트의 인코딩이나 의미에 대한 가정을 피하는 것을 목표로 합니다(ASCII를 사용하는 몇 가지 레거시 사례를 제외하면). 또한, Qt API 전반에 걸쳐 QString 가 사용됩니다. QByteArray가 적합한 두 가지 주요 경우는 원시 바이너리 데이터를 저장해야 할 때와 메모리 절약이 매우 중요한 경우(예: 임베디드 리눅스용 Qt)입니다.
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에서 non-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() 함수의 첫 번째와 두 번째 인수는 치환을 시작할 위치와 치환할 바이트 수입니다.
데이터 수정 함수가 배열의 크기를 늘릴 경우, QByteArray 객체에 대한 메모리 재할당이 발생할 수 있습니다. 이 경우, QByteArray는 배열의 크기가 크게 증가할 때까지 재할당 없이 추가 확장을 위한 공간을 확보하기 위해 당장 필요한 크기보다 더 많이 확장됩니다.
insert(), remove() 및 하위 배열을 크기가 다른 배열로 대체할 때 사용하는 replace() 함수는 배열 내의 많은 바이트를 메모리에서 최소 한 위치만큼 이동해야 하기 때문에, 큰 배열의 경우 속도가 느려질 수 있습니다(선형 시간).
QByteArray를 점진적으로 구축하고 있으며, QByteArray가 포함할 바이트 수를 대략적으로 미리 알고 있는 경우, reserve()를 호출하여 QByteArray에 특정 양의 메모리를 미리 할당하도록 요청할 수 있습니다. 또한 capacity()를 호출하여 QByteArray가 실제로 할당받은 메모리 양을 확인할 수도 있습니다.
비const 연산자 및 함수를 사용하면 암시적 공유로 인해 QByteArray가 데이터의 심층 복사를 수행할 수 있다는 점에 유의하십시오.
QByteArray는 STL 스타일의 이터레이터 (QByteArray::const_iterator 및 QByteArray::iterator)를 제공합니다. 실제로 이터레이터는 C++ 표준 라이브러리가 제공하는 제네릭 알고리즘을 다룰 때 유용합니다.
참고: 이터레이터와 개별 QByteArray 요소에 대한 참조는 안정성 문제가 발생할 수 있습니다. QByteArray를 수정하는 연산(예: insert() 또는 remove())이 호출되면 종종 무효화됩니다. 안정성과 이터레이터와 유사한 기능이 필요한 경우, 인덱스를 이터레이터 대신 사용해야 합니다. 인덱스는 QByteArray의 내부 상태와 연동되지 않으므로 무효화되지 않기 때문입니다.
참고: QByteArray에 대한이터레이터와 그 내부의 개별 바이트에 대한 참조는 QByteArray의 non-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()을 사용하십시오. 특정 값이 나타나는 모든 곳을 다른 값으로 대체하려면, 두 개의 매개변수를 갖는 replace() 오버로드 중 하나를 사용하십시오.
QByteArrayQByteArray는 operator<(), operator<=(), operator==(), operator>=() 등과 같은 오버로드된 연산자를 사용하여 비교할 수 있습니다. 이 비교는 전적으로 바이트의 수치 값을 기반으로 하며 매우 빠르지만, 사람이 기대하는 방식과는 다릅니다. 사용자 인터페이스 문자열을 정렬할 때는 QString::localeAwareCompare()를 사용하는 것이 더 좋습니다.
역사적인 이유로, QByteArray는 null 바이트 배열과 빈 바이트 배열을 구분합니다. null 바이트 배열은 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 falseisNull()을 제외한 모든 함수는 null 바이트 배열과 빈 바이트 배열을 동일하게 취급합니다. 예를 들어, data()은 null 바이트 배열에 대해 '\0' 바이트에 대한 유효한 포인터(nullptr아님 )를 반환하며, QByteArray()는 QByteArray("")와 동일하게 비교됩니다. 항상 ` isEmpty()`를 사용하고 ` isNull()`는 피할 것을 권장합니다.
최대 크기와 메모리 부족 조건
QByteArray의 최대 크기는 아키텍처에 따라 다릅니다. 대부분의 64비트 시스템은 2GB 이상의 메모리를 할당할 수 있으며, 일반적인 제한은 2^63바이트입니다. 실제 값은 데이터 블록을 관리하는 데 필요한 오버헤드에 따라 달라집니다. 따라서 32비트 플랫폼에서는 2GB에서 오버헤드를 뺀 값을, 64비트 플랫폼에서는 2^63바이트에서 오버헤드를 뺀 값을 최대 크기로 예상할 수 있습니다. QByteArray에 저장할 수 있는 요소의 수는 이 최대 크기입니다.
메모리 할당이 실패할 경우, 애플리케이션이 예외 처리를 지원하도록 컴파일된 상태라면 QByteArray는 ` std::bad_alloc ` 예외를 발생시킵니다. Qt 컨테이너에서 메모리 부족 상황이 발생하는 경우에만 Qt가 예외를 발생시킵니다. 예외 처리가 비활성화된 경우, 메모리 부족은 정의되지 않은 동작으로 간주됩니다.
운영 체제는 많은 양의 할당된 메모리, 특히 크고 연속적인 블록을 보유한 애플리케이션에 대해 추가적인 제한을 부과할 수 있다는 점에 유의하십시오. 이러한 고려 사항, 해당 동작의 구성 또는 완화 조치는 QByteArray API의 범위를 벗어납니다.
C 로케일 및 ASCII 함수
QByteArray는 일반적으로 어떤 의미 체계도 가정하지 않고 데이터를 바이트 단위로 처리합니다. 의미 체계를 가정하는 경우, C 로케일과 ASCII 인코딩을 사용합니다. 표준 유니코드 인코딩은 ` QString`에서 지원되며, 다른 인코딩은 ` QStringEncoder ` 및 ` QStringDecoder `를 사용하여 유니코드로 변환함으로써 지원될 수 있습니다. 텍스트의 로케일별 해석을 위해서는 ` QLocale ` 또는 ` QString`를 사용하십시오.
C 문자열
'\0'로 끝나는 문자열로도 알려진 전통적인 C 문자열은 바이트 시퀀스로, 시작 지점으로 지정되며 그 이후 첫 번째 '\0' 바이트를 제외한 그 앞의 모든 바이트를 묵시적으로 포함합니다. 길이를 지정하지 않고 이러한 포인터를 받아들이는 메서드는 이를 바이트 시퀀스로 해석합니다. 이러한 시퀀스는 구조상 '\0' 바이트를 포함할 수 없습니다.
다른 오버로드는 시작 포인터와 바이트 수를 받으며, 이 경우 주어진 바이트 수만큼 시작 주소 이후의 바이트를 사용하는데, 그 중 '\0' 바이트가 포함되어 있는지 여부와는 무관합니다. 포인터만 받는 오버로드가 없는 경우, 길이로 -1을 전달하면 메서드는 포인터 뒤의 첫 번째 '\0' 바이트의 오프셋을 길이로 사용합니다. 길이로 -1을 전달하는 것은 메서드가 명시적으로 이를 수행한다고 밝힌 경우에만 허용되며(이 경우 일반적으로 기본 인자로 지정됨), 그 외의 경우에는 허용되지 않습니다.
공백 문자
바이트 배열에서 공백 문자를 제거해야 하는 경우가 자주 있습니다('\n', '\t', ' ' 등). QByteArray의 양쪽 끝에서 공백을 제거하려면 ` trimmed()`를 사용하십시오. 또한 바이트 배열 내의 연속된 공백 문자를 단일 공백 문자로 대체하려면 ` simplified()`를 사용하십시오. 이러한 용도로는 ASCII 공백 문자만 인식됩니다.
숫자-문자열 변환
숫자 데이터 유형과 문자열 표현 간의 변환을 수행하는 함수는 사용자의 로케일 설정과 관계없이 C 로케일에서 실행됩니다. 숫자와 문자열 간의 로케일 인식 변환을 수행하려면 QLocale 를 사용하십시오.
문자의 대소문자
QByteArray에서 대문자와 소문자, 그리고 대소문자 구분 없는 비교의 개념은 ASCII로 제한됩니다. 비-ASCII 문자는 인코딩에 따라 대소문자가 달라지므로 대소문자 구분이 없는 것으로 처리됩니다. 이는 대소문자 구분 없는 옵션을 지원하거나 인자의 대소문자를 변경하는 함수에 영향을 미칩니다. 이 문제가 영향을 미치는 함수에는 compare(), isLower(), isUpper(), toLower() 및 toUpper()가 포함됩니다.
QString는 유니코드를 사용하여 문자를 표현하므로 이 문제는 해당 함수에는 적용되지 않습니다.
QByteArrayView, QString 및 QBitArray도 참조하십시오 .
멤버 유형 문서
enum QByteArray::Base64Option
flags QByteArray::Base64Options
이 열거형에는 Base64 인코딩 및 디코딩에 사용할 수 있는 옵션들이 포함되어 있습니다. Base64는 RFC 4648에 정의되어 있으며, 다음과 같은 옵션이 있습니다:
| 상수 | 값 | 설명 |
|---|---|---|
QByteArray::Base64Encoding | 0 | (기본값) 단순히 "base64"라고 불리는 일반 Base64 알파벳 |
QByteArray::Base64UrlEncoding | 1 | "base64url"이라고 하는 대체 알파벳으로, URL에 더 적합하도록 알파벳 중 두 문자를 대체합니다. |
QByteArray::KeepTrailingEquals | 0 | (기본값) 인코딩된 데이터의 끝에 패딩용 등호(=)를 유지하여, 데이터 크기가 항상 4의 배수가 되도록 합니다. |
QByteArray::OmitTrailingEquals | 2 | 인코딩된 데이터 끝에 패딩용 등호 추가를 생략합니다. |
QByteArray::IgnoreBase64DecodingErrors | 0 | Base64로 인코딩된 데이터를 디코딩할 때 입력의 오류를 무시하며, 유효하지 않은 문자는 단순히 건너뜁니다. 이 열거형 값은 Qt 5.15에 추가되었습니다. |
QByteArray::AbortOnBase64DecodingErrors | 4 | Base64로 인코딩된 데이터를 디코딩할 때, 첫 번째 디코딩 오류에서 중지합니다. 이 열거형 값은 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 스타일의 비상수 이터레이터를 제공합니다.
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 가 수정될 경우 무효화됩니다.
[noexcept] QByteArray::const_iterator QByteArray::cend() const
바이트 배열의 마지막 바이트 바로 다음을 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QByteArray `가 수정될 경우 무효화됩니다.
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로 설정합니다.
[noexcept, since 6.0] int QByteArray::compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
이 QByteArray 가 QByteArrayView bv 보다 앞, 같은 위치, 또는 뒤에 정렬되는지에 따라 0보다 작거나, 같거나, 큰 정수를 반환합니다. 비교는 대소문자 구분 설정 cs 에 따라 수행됩니다.
이 함수는 Qt 6.0에서 도입되었습니다.
operator== 및 Character Case도 참조하십시오 .
[noexcept] QByteArray::const_iterator QByteArray::constBegin() const
바이트 배열의 첫 번째 바이트를 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QByteArray `가 수정될 경우 무효화됩니다.
참조: ` begin()` 및 ` constEnd()`.
[noexcept] const char *QByteArray::constData() const
바이트 배열에 저장된 const 데이터에 대한 포인터를 반환합니다. 이 포인터를 사용하여 배열을 구성하는 바이트에 접근할 수 있습니다. QByteArray 객체가 원시 데이터로부터 생성된 경우가 아닌 한, 데이터는 '\0'로 종료됩니다.
이 포인터는 detach가 발생하지 않고 QByteArray 이 수정되지 않는 한 유효합니다.
이 함수는 주로 ' const char *'을 매개변수로 받는 함수에 바이트 배열을 전달할 때 유용합니다.
참고: QByteArray 는 '\0'을 포함한 모든 바이트 값을 저장할 수 있지만, char * 인자를 받는 대부분의 함수는 데이터가 처음 발견되는 '\0'에서 끝난다고 가정합니다.
data(), operator[](), fromRawData()도 참조하십시오 .
[noexcept] QByteArray::const_iterator QByteArray::constEnd() const
바이트 배열의 마지막 바이트 바로 다음을 가리키는 const STL 스타일의 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 ` QByteArray `가 수정될 경우 무효화됩니다.
참조: ` constBegin()` 및 ` end()`.
[since 6.0] bool QByteArray::contains(QByteArrayView bv) const
이 바이트 배열에 bv 에서 확인한 바이트 시퀀스가 포함되어 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.
이 함수는 Qt 6.0에서 도입되었습니다.
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
바이트 배열의 첫 번째 바이트를 역순으로 가리키는 const STL 스타일의 역방향 이터레이터를 반환합니다.
경고: 반환된 이터레이터는 분리되거나 QByteArray 가 수정될 경우 무효화됩니다.
참조: ` begin()`, ` rbegin()`, ` rend()`.
[noexcept] QByteArray::const_reverse_iterator QByteArray::crend() const
바이트 배열의 마지막 바이트 바로 뒤를 가리키는, 역순의 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;
}포인터는 분리(detach)가 발생하지 않고 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 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)
data 의 복사본을 포함하는 새로운 QByteArray 객체를 생성합니다.
fromRawNSData(), fromRawData(), toNSData() 및 toRawNSData()도 참조하십시오 .
[static] QByteArray QByteArray::fromPercentEncoding(const QByteArray &input, char percent = '%')
URI/URL 형식의 퍼센트 인코딩으로 표현된 input 를 디코딩합니다.
디코딩된 텍스트를 포함하는 바이트 배열을 반환합니다. percent 매개변수를 사용하면 '%' 대신 다른 문자(예: '_' 또는 '=')를 이스케이프 문자로 지정할 수 있습니다. input.percentDecoded(percent)와 동일합니다.
예:
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 에 대한 소유권을 가지지 않으므로, data 를 참조하는 마지막 QByteArray 가 소멸되더라도 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)
data 의 바이트를 사용하는 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 및 그 이상의 모든 바이트를 메모리 내에서 최소 한 칸씩 더 이동시켜야 하므로 속도가 느릴 수 있습니다(선형 시간).
이 배열은 삽입을 수용하기 위해 확장됩니다. 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 falsesize()도 참조하십시오 .
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 falseQt XML은 역사적인 이유로 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이면 그에서 한 칸 앞의 문자로부터 시작하며, 이와 같은 방식으로 진행됩니다.
일치하는 항목이 없으면 -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 는 기본적으로 null로 종료되지만, 일부 경우(예: fromRawData() 사용 시) 데이터가 반드시 \0 문자로 끝나는 것은 아니며, 이는 null로 종료된 문자열을 기대하는 메서드(예: C API)를 호출할 때 문제가 될 수 있습니다.
이 함수는 Qt 6.10에서 도입되었습니다.
nullTerminated(), fromRawData() 및 setRawData()도 참조하십시오 .
[since 6.10] QByteArray QByteArray::nullTerminated() &&
[since 6.10] QByteArray QByteArray::nullTerminated() const &
이 바이트 배열의 복사본을 반환하며, 이 복사본은 항상 null로 종료됩니다. 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 `를 사용하십시오.
[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 를 텍스트로 나타내는 바이트 배열을 반환합니다.
n 를 나타내는 문자열을 포함하는 바이트 배열을 반환하며, 이때 format 및 precision 는 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)와 동일합니다.
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!"[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)
len 인덱스 위치 pos 에서 시작하여 바이트를 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) &&
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 `를 사용하십시오.
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 라는 부동소수점 숫자를 텍스트로 표현합니다.
이 함수는 주어진 ` format ` 및 ` precision `(` QLocale::toString`(double, char, int)와 동일한 의미)를 사용하여 이 바이트 배열을 ` n`을 나타내는 문자열로 설정하고, 이 바이트 배열에 대한 참조를 반환합니다.
이 함수는 오버로드된 함수입니다.
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 는 딥 복사(deep copy) 가 생성되지 않는 한 해당 바이트를 자동으로 추가하지 않습니다.
예시:
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
int base 를 사용하여 변환된 바이트 배열을 반환하며, 여기서 base는 로, 기본값은 10입니다. 기수 0과 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표기됩니다. A는 10, B는 11과 같이 이어집니다.
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다. 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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 의 int로 변환된 바이트 배열을 반환하며, 이때 기수(base)는 로 설정됩니다(기본값은 10입니다). 기수 0과 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표기됩니다(A는 10, B는 11 등).
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다; 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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
long long base 를 사용하여 변환된 바이트 배열을 반환합니다. 여기서 base는 이며, 기본값은 10입니다. 기수 0과 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표시됩니다. A는 10, B는 11 등을 의미합니다.
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다. 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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 를 사용하여 변환된 바이트 배열을 반환합니다. 여기서 base는 이며, 기본값은 10입니다. 기수 0과 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표기됩니다(A는 10, B는 11 등).
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다. 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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
unsigned int base 를 사용하여 변환된 바이트 배열을 반환합니다. 여기서 base는 이며, 기본값은 10입니다. 기수 0과 2부터 36까지 지원되며, 9를 초과하는 자릿수에는 문자가 사용됩니다. A는 10, B는 11을 나타내는 식입니다.
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다. 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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
unsigned long int base 를 사용하여 바이트 배열을 변환한 값을 반환합니다. 여기서 base 는 기본적으로 10입니다. 기수 0과 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표기됩니다(A는 10, B는 11 등).
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다. 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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
unsigned long long base 를 사용하여 변환된 바이트 배열을 반환합니다. 여기서 base 는 기본적으로 10입니다. 기수 0 및 2부터 36까지 지원되며, 9를 초과하는 숫자는 문자로 표시됩니다. A는 10, B는 11을 나타내며, 이와 같은 방식으로 이어집니다.
base 가 0인 경우, 다음 규칙에 따라 기수가 자동으로 결정됩니다. 바이트 배열이 "0x"로 시작하면 16진수(기수 16)로 간주됩니다; 그렇지 않은 경우, "0b"로 시작하면 이진수(기수 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 를 사용하여 변환된 바이트 배열을 반환합니다. 여기서 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()도 참조하십시오 .
참고: 새로운 코드에서는 대신 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 는 null로 종료되는 문자열을 가리키는 것으로 간주되며, 그 길이는 동적으로 결정됩니다.
이 함수는 오버로드된 함수입니다.
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)
pred 라는 술어가 true를 반환하는 모든 요소를 바이트 배열 ba 에서 제거합니다. 제거된 요소가 있는 경우, 그 개수를 반환합니다.
이 함수는 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 버전에서 qCompress()로 압축된 데이터를, 이 기능이 추가된 Qt 3.1 버전까지 거슬러 올라가 압축을 해제합니다.
참고: 이 함수를 사용하여 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 dst 에서 최대 바이트를 로 복사합니다( 또는 종료 문자 ' ' 중 먼저 나타나는 지점에서 중단됨). 가 이거나 가 0인 경우를 제외하고, 가 ' '로 종료됨을 보장합니다. 가 인 경우 를 반환하고, 그렇지 않은 경우 를 반환합니다. len len\0 dst nullptr len 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.