Spec-Zone.ru › Qt 6.1

Класс 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
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 = -1) const
qsizetype lastIndexOf(char ch, qsizetype from = -1) 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)

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

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

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

QByteArrayView разработан как интерфейсный тип; его основное применение — в качестве типа параметра функции. При использовании QByteArrayView в качестве автоматических переменных или членов данных необходимо следить за тем, чтобы ссылаемые данные (например, принадлежащие QByteArray) существовали дольше, чем QByteArrayView, на всех путях кода, чтобы не ссылка 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 предоставляет итератор const в стиле STL для QByteArrayView.

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

QByteArrayView::const_pointer

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

QByteArrayView::const_reference

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

QByteArrayView::const_reverse_iterator

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

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

QByteArrayView::difference_type

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

QByteArrayView::iterator

Этот typedef предоставляет итератор const в стиле 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 предоставляет обратный итератор const в стиле 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 = -1) const

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

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

См. также 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, поиск начинается с последнего символа; если равно -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() должен оставаться действительным в течение всего срока существования этого объекта представления массива байтов.

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

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

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

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

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

Этот конструктор участвует в разрешении перегрузки только если 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, и приводит к представлению массива байтов null.

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

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

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

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

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

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

Передача nullptr в качестве 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().

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

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

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

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

bool QByteArrayView::empty() const

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

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

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

QByteArrayView::const_iterator QByteArrayView::end() 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() его, когда уверены, что он находится в конце. В качестве альтернативы вы можете использовать перегрузку конструктора, принимающую литерал массива символов, который создаст представление до, но не включая, первый завершающий нуль в данных.

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

См. также Совместимые типы байтов и 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().

QByteArrayView::const_reverse_iterator QByteArrayView::rbegin() 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().

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

Spec-Zone.ru

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