Spec-Zone.ru › Qt

Класс QByteArrayView

Класс QByteArrayView предоставляет представление на массив байтов с только для чтения подмножеством API QByteArray. Подробнее...

Заголовок: #include <QByteArrayView>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С момента: Qt 6.0
  • Список всех членов, включая наследуемые

Примечание: Все функции в этом классе являются реентерабельными.

Открытые типы

const_iterator
const_pointer
const_reference
const_reverse_iterator
difference_type
iterator
pointer
reference
reverse_iterator
size_type
storage_type
value_type

Открытые функции

QByteArrayView(const char (&)[Size] data = Size)
QByteArrayView(const Container &c)
QByteArrayView(const QByteArray &byteArray)
QByteArrayView(const Byte *data)
QByteArrayView(const Byte *first, const Byte *last)
QByteArrayView(const Byte *data, qsizetype len)
QByteArrayView(std::nullptr_t)
QByteArrayView()
char at(qsizetype n) const
char back() const
QByteArrayView::const_iterator begin() const
QByteArrayView::const_iterator cbegin() const
QByteArrayView::const_iterator cend() const
void chop(qsizetype length)
QByteArrayView chopped(qsizetype length) const
int compare(QByteArrayView bv, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QByteArrayView::const_pointer constData() const
bool contains(QByteArrayView bv) const
bool contains(char ch) const
qsizetype count(QByteArrayView bv) const
qsizetype count(char ch) const
QByteArrayView::const_reverse_iterator crbegin() const
QByteArrayView::const_reverse_iterator crend() const
QByteArrayView::const_pointer data() const
bool empty() const
QByteArrayView::const_iterator end() const
bool endsWith(QByteArrayView bv) const
bool endsWith(char ch) const
QByteArrayView first(qsizetype n) const
char front() const
qsizetype indexOf(QByteArrayView bv, qsizetype from = 0) const
qsizetype indexOf(char ch, qsizetype from = 0) const
bool isEmpty() const
bool isNull() const
QByteArrayView last(qsizetype n) const
qsizetype lastIndexOf(QByteArrayView bv, qsizetype from) const
qsizetype lastIndexOf(QByteArrayView bv) const
qsizetype lastIndexOf(char ch, qsizetype from = -1) const
qsizetype length() const
QByteArrayView::const_reverse_iterator rbegin() const
QByteArrayView::const_reverse_iterator rend() const
qsizetype size() const
QByteArrayView sliced(qsizetype pos) const
QByteArrayView sliced(qsizetype pos, qsizetype n) const
bool startsWith(QByteArrayView bv) const
bool startsWith(char ch) const
QByteArray toByteArray() const
void truncate(qsizetype length)
char operator[](qsizetype n) const

Статические публичные члены

QByteArrayView fromArray(const Byte (&)[Size] data = Size)

Связанные нечлены

bool operator!=(QByteArrayView lhs, QByteArrayView rhs)
bool operator<(QByteArrayView lhs, QByteArrayView rhs)
bool operator<=(QByteArrayView lhs, QByteArrayView rhs)
bool operator==(QByteArrayView lhs, QByteArrayView rhs)
bool operator>(QByteArrayView lhs, QByteArrayView rhs)
bool operator>=(QByteArrayView lhs, QByteArrayView rhs)

Подробное описание

QByteArrayView ссылается на непрерывный фрагмент сырых байтов, который она не владеет. Она работает как тип интерфейса для всех видов данных, похожих на массив байтов, без необходимости предварительного создания QByteArray.

Данные массива байтов могут быть представлены в виде массива (или совместимой со структурой данных, такой как QByteArray, std::basic_string и т.д.) char, signed char, unsigned char или std::byte.

QByteArrayView спроектирован как тип интерфейса; его основное применение — в качестве типа параметра функции. При использовании QByteArrayView в качестве автоматических переменных или членов данных необходимо следить за тем, чтобы данные, на которые ссылается QByteArrayView (например, принадлежащие QByteArray), существовали дольше, чем QByteArrayView, на всех путях кода, чтобы избежать ситуации, когда представление байтового массива ссылается на удалённые данные.

При использовании в качестве типа интерфейса QByteArrayView позволяет одной функции принимать широкий спектр источников данных, подобных байтовым массивам. Одна функция, принимающая QByteArrayView, таким образом, заменяет несколько перегрузок функций (принимающих, например, QByteArray, const char *, и т.д.), одновременно позволяя передавать в функцию ещё больше источников данных байтовых массивов.

QByteArrayView следует передавать по значению, а не по ссылке на константу:

    void myfun1(QByteArrayView bv);        // preferred
    void myfun2(const QByteArrayView &bv); // compiles and works, but slower

Если вы хотите предоставить своим пользователям максимальную свободу в выборе типа данных, которые они могут передавать вашей функции, дополните перегрузку QByteArrayView перегрузками для

  • char: эта перегрузка может делегировать вызов версии QByteArrayView:
        void fun(QByteArrayView bv);
        void fun(char ch) { fun(QByteArrayView(&ch, 1)); }

    хотя по техническим причинам QByteArrayView не может предоставить конструктор char самостоятельно.

  • QByteArray: если вы храните неизменную копию байтового массива и хотите воспользоваться неявным совместным использованием QByteArray.

QByteArrayView также может использоваться в качестве возвращаемого значения функции. Если вы вызываете функцию, возвращающую QByteArrayView, будьте внимательны, чтобы QByteArrayView не сохранялся дольше, чем функция гарантирует сохранение в живых ссылаемых данных. Если есть сомнения, получите сильную ссылку на данные, вызвав toByteArray() для преобразования QByteArrayView в QByteArray.

Совместимые типы байтов

QByteArrayView может быть сконструирован на любом контейнере байтов, где тип байта — один из:

  • char (как со знаком, так и без знака)
  • std::byte

См. также QByteArray и QStringView.

Документация по типам членов

QByteArrayView::const_iterator

Этот typedef предоставляет итератор типа STL для QByteArrayView.

См. также iterator и const_reverse_iterator.

QByteArrayView::const_pointer

Псевдоним для value_type *. Предоставлен для совместимости со STL.

QByteArrayView::const_reference

Псевдоним для value_type &. Предоставлен для совместимости со STL.

QByteArrayView::const_reverse_iterator

Этот typedef предоставляет обратный итератор типа STL для QByteArrayView.

См. также reverse_iterator и const_iterator.

QByteArrayView::difference_type

Псевдоним для std::ptrdiff_t. Предоставлен для совместимости со STL.

QByteArrayView::iterator

Этот typedef предоставляет итератор типа STL для QByteArrayView.

QByteArrayView не поддерживает изменяемые итераторы, поэтому он эквивалентен const_iterator.

См. также const_iterator и reverse_iterator.

QByteArrayView::pointer

Псевдоним для value_type *. Предоставлен для совместимости со STL.

QByteArrayView не поддерживает изменяемые указатели, поэтому он эквивалентен const_pointer.

QByteArrayView::reference

Псевдоним для value_type &. Предоставлен для совместимости со STL.

QByteArrayView не поддерживает изменяемые ссылки, поэтому он эквивалентен const_reference.

QByteArrayView::reverse_iterator

Этот typedef предоставляет обратный итератор типа STL для QByteArrayView.

QByteArrayView не поддерживает изменяемые обратные итераторы, поэтому он эквивалентен const_reverse_iterator.

См. также const_reverse_iterator и iterator.

QByteArrayView::size_type

Псевдоним для qsizetype. Предоставлен для совместимости со STL.

QByteArrayView::storage_type

Псевдоним для char.

QByteArrayView::value_type

Псевдоним для const char. Предоставлен для совместимости со STL.

Документация по функциям-членам

qsizetype QByteArrayView::lastIndexOf(QByteArrayView bv, qsizetype from) const

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

Возвращает индекс начала последнего вхождения последовательности байтов, рассматриваемой как bv, или последнего вхождения байта ch соответственно в этом представлении байтового массива, выполняя поиск назад с индекса from. Если from равно -1, поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если совпадение не найдено.

Примечание: При поиске последовательности длиной 0 (bv), совпадение в конце данных исключается из поиска с помощью отрицательного from, хотя -1 обычно рассматривается как поиск с конца представления: совпадение в конце находится после последнего символа, поэтому оно исключается. Чтобы включить такое конечное пустое совпадение, либо задайте положительное значение для from, либо полностью опустите параметр from.

См. также indexOf() и contains().

bool QByteArrayView::contains(QByteArrayView bv) const

bool QByteArrayView::contains(char ch) const

Возвращает true , если это представление байтового массива содержит вхождение последовательности байтов, рассматриваемой как bv, или символа ch соответственно; в противном случае возвращает false.

См. также indexOf() и lastIndexOf().

qsizetype QByteArrayView::indexOf(QByteArrayView bv, qsizetype from = 0) const

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

Возвращает индекс начала первого вхождения последовательности байтов, рассматриваемой как bv, или первого вхождения байта ch соответственно в этом представлении байтового массива, выполняя поиск вперёд с индекса from. Возвращает -1, если совпадение не найдено.

Если from равно -1, поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее.

См. также lastIndexOf() и contains().

bool QByteArrayView::endsWith(QByteArrayView bv) const

bool QByteArrayView::endsWith(char ch) const

Возвращает true , если это представление байтового массива заканчивается байтовым массивом bv или символом ch соответственно; в противном случае возвращает false.

См. также startsWith().

bool QByteArrayView::startsWith(QByteArrayView bv) const

bool QByteArrayView::startsWith(char ch) const

Возвращает true , если это представление байтового массива начинается с байтового массива bv или символа ch соответственно; в противном случае возвращает false.

См. также endsWith().

template <size_t Size> QByteArrayView::QByteArrayView(const char (&)[Size] data = Size)

Создаёт представление байтового массива для массива char data. Представление охватывает массив до первого встреченного '\0', или Size, что произойдёт раньше. Если вам нужен весь массив, используйте fromArray() вместо этого.

data должен оставаться валидным для всего времени существования объекта представления байтового массива.

Примечание: Этот конструктор доступен только для литералов массивов char. Причина заключается в совместимости с библиотеками C, которые предварительно определяют массивы «достаточно большой» длины, но используют только часть выделенного пространства. Для интуитивного поддержки этого в перегрузках неявных конструкторов нам необходимо остановиться на первом char(0). Это логично для массива char, но не для массива std::byte.

См. также fromArray.

template <typename Container, if_compatible_container<Container>> QByteArrayView::QByteArrayView(const Container &c)

Создает представление массива байтов для контейнера c, похожего на массив. Длина и данные устанавливаются соответственно через std::size(c) и std::data(c).

Данные контейнера должны оставаться валидными в течение всего времени жизни этого объекта представления массива байтов.

Этот конструктор участвует в разрешении перегрузки, если c — любой непрерывный контейнер с элементами совместимого типа байтов.

См. также Совместимые типы байтов.

QByteArrayView::QByteArrayView(const QByteArray &byteArray)

Создает представление массива байтов для byteArray.

byteArray.data() должен оставаться валидным в течение всего времени жизни этого объекта представления массива байтов.

Представление массива байтов будет нулевым тогда и только тогда, когда byteArray.isNull().

template <typename Byte> QByteArrayView::QByteArrayView(const Byte *data)

Создает представление массива байтов для data. Длина определяется путем поиска первого Byte(0).

data должен оставаться валидным в течение всего времени жизни этого объекта представления массива байтов.

Передача nullptr в качестве data безопасна и приводит к нулевому представлению массива байтов.

Этот конструктор участвует в разрешении перегрузки только если data не является массивом и если Byte — совместимый тип байтов.

См. также Совместимые типы байтов.

template <typename Byte, if_compatible_byte<Byte>> QByteArrayView::QByteArrayView(const Byte *first, const Byte *last)

Создает представление массива байтов для first с длиной (last - first).

Диапазон [first,last) должен оставаться валидным в течение всего времени жизни QByteArrayView.

Передача \nullptr в качестве first безопасна, если last также nullptr, и приводит к нулевому представлению массива байтов.

Поведение не определено, если last предшествует first или first — nullptr, а last — нет.

Этот конструктор участвует в разрешении перегрузки только если Byte — совместимый тип байтов.

См. также Совместимые типы байтов.

template <typename Byte, if_compatible_byte<Byte>> QByteArrayView::QByteArrayView(const Byte *data, qsizetype len)

Создает представление массива байтов для data с длиной len.

Передача [data,len) в качестве data безопасна, если len равно 0, и приводит к нулевому представлению массива байтов.

Поведение не определено, если len отрицательно или, если положительно, если data — nullptr.

Этот конструктор участвует в разрешении перегрузки только если Byte — совместимый тип байтов.

См. также Совместимые типы байтов.

QByteArrayView::QByteArrayView(std::nullptr_t)

Создает нулевое представление массива байтов.

См. также isNull().

QByteArrayView::QByteArrayView()

Создает нулевое представление массива байтов.

См. также isNull().

char QByteArrayView::at(qsizetype n) const

Возвращает символ в позиции n в этом представлении массива байтов.

Поведение не определено, если n отрицательно или не меньше size().

См. также operator[](), front() и back().

char QByteArrayView::back() const

Возвращает последний байт в массиве байтов.

Эта функция предоставлена для совместимости со STL.

Предупреждение: Вызов этой функции для пустого представления массива байтов является неопределенным поведением.

См. также front().

QByteArrayView::const_iterator QByteArrayView::begin() const

Возвращает постоянный итератор STL, указывающий на первый байт в массиве байтов.

Эта функция предоставлена для совместимости со STL.

См. также end(), cbegin(), rbegin() и data().

QByteArrayView::const_iterator QByteArrayView::cbegin() const

То же, что и begin().

Эта функция предоставлена для совместимости со STL.

См. также cend(), begin(), crbegin() и data().

QByteArrayView::const_iterator QByteArrayView::cend() const

То же, что и end().

Эта функция предоставлена для совместимости со STL.

См. также cbegin(), end() и crend().

void QByteArrayView::chop(qsizetype length)

Усекает это представление массива байтов на length символов.

То же, что и *this = first(size() - length).

Примечание: Поведение не определено, когда length < 0 или length > size().

См. также sliced(), first(), last(), chopped() и truncate().

QByteArrayView QByteArrayView::chopped(qsizetype length) const

Возвращает копию этого представления массива байтов, из которого исключены последние length байтов. Другими словами, возвращает представление массива байтов длиной size() - length, начиная с начала этого объекта.

То же, что и first(size() - length).

Примечание: Поведение не определено, когда length < 0 или length > size().

См. также first(), last(), sliced(), chop() и truncate().

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

Возвращает целое число, меньшее, равное или большее нуля, в зависимости от того, сортируется ли это QByteArrayView перед, на том же месте, что и QByteArrayView bv. Сравнение выполняется в соответствии со значением чувствительности к регистру cs.

Эта функция была добавлена в Qt 6.2.

См. также operator==().

QByteArrayView::const_pointer QByteArrayView::constData() const

Возвращает постоянный указатель char на первый байт в массиве байтов.

Примечание: Символьный массив, представленный возвращаемым значением, не гарантируется нуль-терминированным. Возвращаемый указатель безопасен только для доступа к байтам с индексами, меньшими, чем size() этого представления массива байтов.

См. также data(), begin() и end().

qsizetype QByteArrayView::count(QByteArrayView bv) const

Возвращает количество (возможно перекрывающихся) вхождений последовательности байтов, представленной в bv, в этом представлении массива байтов.

См. также contains() и indexOf().

qsizetype QByteArrayView::count(char ch) const

Это перегруженная функция.

Возвращает количество вхождений байта ch в этом представлении массива байтов.

См. также contains() и indexOf().

QByteArrayView::const_reverse_iterator QByteArrayView::crbegin() const

То же, что и rbegin().

Эта функция предоставлена для совместимости со STL.

См. также crend(), rbegin() и cbegin().

QByteArrayView::const_reverse_iterator QByteArrayView::crend() const

То же, что и rend().

Эта функция предоставлена для совместимости со STL.

См. также crbegin(), rend() и cend().

QByteArrayView::const_pointer QByteArrayView::data() const

Возвращает указатель const char на первый байт в массиве байтов.

Примечание: Массив символов, представленный возвращаемым значением, не гарантируется, что он завершается нулём. Возвращаемый указатель безопасен только для доступа к байтам с индексами, меньшими чем размер этого представления массива байтов.

См. также begin() и end().

bool QByteArrayView::empty() const

Возвращает true если это представление массива байтов пустое — то есть size() == 0.

Эта функция предоставлена для совместимости со STL.

См. также isEmpty(), isNull() и size().

QByteArrayView::const_iterator QByteArrayView::end() const

Возвращает const итератор в стиле STL, указывающий сразу после последнего байта в массиве байтов.

Эта функция предоставлена для совместимости со STL.

См. также begin(), cend() и rend().

QByteArrayView QByteArrayView::first(qsizetype n) const

Возвращает представление массива байтов, которое указывает на первые n байтов этого представления массива байтов. Эквивалентно sliced(0, n).

Примечание: Поведение не определено, когда n < 0 или n > size().

См. также last(), startsWith(), chopped(), chop() и truncate().

[static] template <typename Byte, size_t Size> QByteArrayView QByteArrayView::fromArray(const Byte (&)[Size] data = Size)

Создаёт представление массива байтов для литерала массива data. Представление охватывает весь массив. Это включает в себя завершающий нулевой символ литералов массивов char. Если вы не хотите, чтобы завершающий нулевой символ включался в представление, вы можете chop() его, когда уверены, что он находится в конце. В качестве альтернативы, вы можете использовать перегрузку конструктора, принимающую литерал массива char, которая создаст представление до, но не включая, первый завершающий нулевой символ в данных.

Эта функция будет работать с любым литералом массива совместимого типа байтов.

См. также Совместимые типы байтов и QByteArrayView.

char QByteArrayView::front() const

Возвращает первый байт в массиве байтов.

Эта функция предоставлена для совместимости со STL.

Предупреждение: Вызов этой функции для пустого представления массива байтов ведёт к неопределённому поведению.

См. также back().

bool QByteArrayView::isEmpty() const

Возвращает true если это представление массива байтов пустое — то есть size() == 0.

См. также empty(), isNull() и size().

bool QByteArrayView::isNull() const

Возвращает true если это представление массива байтов null — то есть data() == nullptr.

См. также empty(), isEmpty() и size().

QByteArrayView QByteArrayView::last(qsizetype n) const

Возвращает представление массива байтов, которое указывает на последние n байтов этого представления массива байтов.

Примечание: Поведение не определено, когда n < 0 или n > size().

См. также first(), endsWith(), chopped(), chop() и truncate().

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

Это перегруженная функция.

Возвращает позицию индекса начала последнего вхождения последовательности байтов, просматриваемых bv, в этом представлении массива байтов, выполняя поиск назад с конца этого представления массива байтов. Возвращает -1, если совпадение не найдено.

Эта функция была добавлена в Qt 6.2.

См. также indexOf() и contains().

qsizetype QByteArrayView::length() const

То же, что и size().

См. также empty(), isEmpty(), isNull() и size().

QByteArrayView::const_reverse_iterator QByteArrayView::rbegin() const

Возвращает const итератор в стиле STL обратного порядка, указывающий на первый байт в массиве байтов в обратном порядке.

Эта функция предоставлена для совместимости со STL.

См. также rend(), crbegin() и begin().

QByteArrayView::const_reverse_iterator QByteArrayView::rend() const

Возвращает итератор в стиле STL обратного порядка, указывающий на позицию сразу после последнего байта в массиве байтов в обратном порядке.

Эта функция предоставлена для совместимости со STL.

См. также rbegin(), crend() и end().

qsizetype QByteArrayView::size() const

Возвращает количество байтов в этом представлении массива байтов.

См. также empty(), isEmpty() и isNull().

QByteArrayView QByteArrayView::sliced(qsizetype pos) const

Возвращает представление массива байтов, начинающееся с позиции pos в этом объекте и простирающееся до его конца.

Примечание: Поведение не определено, когда pos < 0 или pos > size().

См. также first(), last(), chopped(), chop() и truncate().

QByteArrayView QByteArrayView::sliced(qsizetype pos, qsizetype n) const

Возвращает представление массива байтов, которое указывает на n байтов этого представления массива байтов, начиная с позиции pos.

Примечание: Поведение не определено, когда pos < 0, n < 0 или pos + n > size().

См. также first(), last(), chopped(), chop() и truncate().

QByteArray QByteArrayView::toByteArray() const

Возвращает глубокую копию данных этого представления массива байтов в виде QByteArray.

Возвращаемое значение будет null QByteArray тогда и только тогда, когда это представление массива байтов является null.

Предупреждение: QByteArrayView может хранить данные объёмом более 231 байтов, в то время как QByteArray не может. Вызов этой функции для представления массива байтов, для которого size() возвращает значение, большее чем INT_MAX / 2 , приводит к неопределённому поведению.

void QByteArrayView::truncate(qsizetype length)

Усекает это представление массива байтов до длины length.

То же, что и *this = first(length).

Примечание: Поведение не определено, когда length < 0 или length > size().

См. также first(), last(), sliced(), chopped() и chop().

char QByteArrayView::operator[](qsizetype n) const

Возвращает символ в позиции n в этом представлении массива байтов.

Поведение не определено, если n отрицательно или не меньше size().

См. также at(), front() и back().

Связанные нечлены

bool operator!=(QByteArrayView lhs, QByteArrayView rhs)

bool operator<(QByteArrayView lhs, QByteArrayView rhs)

bool operator<=(QByteArrayView lhs, QByteArrayView rhs)

bool operator==(QByteArrayView lhs, QByteArrayView rhs)

bool operator>(QByteArrayView lhs, QByteArrayView rhs)

bool operator>=(QByteArrayView lhs, QByteArrayView rhs)

Операторы сравнения для QByteArrayView.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qbytearrayview.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API