Spec-Zone.ru › Qt 5.13

Класс QStringView

Класс QStringView предоставляет унифицированный вид на UTF-16 строки с подмножеством функций класса QString для чтения. Подробнее...

Заголовок: #include <QStringView>
qmake: QT += core
С момента: Qt 5.10

Этот класс был представлен в Qt 5.10.

  • Список всех членов, включая унаследованные

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

Типы

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

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

QStringView(const StdBasicString &str)
QStringView(const QStringRef &str)
QStringView(const QString &str)
QStringView(const Char *str)
QStringView(const Char (&)[N] string = ...)
QStringView(const Char *first, const Char *last)
QStringView(const Char *str, qsizetype len)
QStringView(std::nullptr_t)
QStringView()
QChar at(qsizetype n) const
QChar back() const
QStringView::const_iterator begin() const
QStringView::const_iterator cbegin() const
QStringView::const_iterator cend() const
void chop(qsizetype length)
QStringView chopped(qsizetype length) const
int compare(QStringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringView::const_reverse_iterator crbegin() const
QStringView::const_reverse_iterator crend() const
QStringView::const_pointer data() const
bool empty() const
QStringView::const_iterator end() const
bool endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool endsWith(QChar ch) const
bool endsWith(QChar ch, Qt::CaseSensitivity cs) const
QChar first() const
QChar front() const
bool isEmpty() const
bool isNull() const
bool isRightToLeft() const
QChar last() const
QStringView left(qsizetype length) const
int length() const
QStringView mid(qsizetype start) const
QStringView mid(qsizetype start, qsizetype length) const
QStringView::const_reverse_iterator rbegin() const
QStringView::const_reverse_iterator rend() const
QStringView right(qsizetype length) const
qsizetype size() const
bool startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool startsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool startsWith(QChar ch) const
bool startsWith(QChar ch, Qt::CaseSensitivity cs) const
QByteArray toLatin1() const
QByteArray toLocal8Bit() const
QString toString() const
QVector<uint> toUcs4() const
QByteArray toUtf8() const
QStringView trimmed() const
void truncate(qsizetype length)
const QStringView::storage_type * utf16() const
QChar operator[](qsizetype n) const

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

uint qHash(QStringView key, uint seed = ...)

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

A QStringView ссылается на непрерывную часть строки UTF-16, она не является её владельцем. Она действует как интерфейсный тип для всех типов строк UTF-16, без необходимости сначала создать QString.

Строка UTF-16 может быть представлена в виде массива (или совместимой с массивом структуры данных, такой как QString, std::basic_string и т.д.) QChar, ushort, char16_t (на компиляторах, поддерживающих C++11 Unicode строки) или (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

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

При использовании в качестве типа интерфейса, QStringView позволяет одной функции принимать широкий спектр источников данных UTF-16. Одна функция, принимающая QStringView, таким образом, заменяет три перегрузки функций (принимающие QString, QStringRef и (const QChar*, int)), одновременно позволяя передавать в функцию ещё больше источников данных строк, такие как u"Hello World", а также char16_t строковый литерал.

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

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

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

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

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

  • QString: если вы сохраняете немодифицированную копию строки и хотите воспользоваться неявным совместным использованием QString.
  • QLatin1String: если вы можете реализовать функцию без преобразования QLatin1String в UTF-16; пользователи ожидают, что функция, перегруженная по QLatin1String, будет выполнять строго меньше операций выделения памяти, чем семантически эквивалентный вызов версии QStringView, включающий создание QString из QLatin1String.

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

QStringView — это литеральный тип, но поскольку он хранит данные как char16_t, итерация не constexpr (преобразования из const char16_t* в const QChar*, что недопустимо в constexpr функциях). Вместо этого вы можете использовать индексированный цикл и/или utf16() в constexpr контекстах.

Примечание: Мы настоятельно не рекомендуем использовать QList<QStringView>, поскольку QList является очень неэффективным контейнером для QStringView (он выделяет кусок памяти для каждого элемента). Используйте QVector (или std::vector) для хранения QStringView вместо этого.

См. также QString и QStringRef.

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

typedef QStringView::const_iterator

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

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

typedef QStringView::const_pointer

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

typedef QStringView::const_reference

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

typedef QStringView::const_reverse_iterator

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

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

typedef QStringView::difference_type

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

typedef QStringView::iterator

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

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

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

typedef QStringView::pointer

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

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

typedef QStringView::reference

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

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

typedef QStringView::reverse_iterator

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

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

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

typedef QStringView::size_type

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

В отличие от других классов Qt, QStringView использует qsizetype в качестве своего size_type, чтобы разрешить принятие данных из std::basic_string без усечения. Функции API Qt, например length(), возвращают int, в то время как совместимые со STL функции, например size(), возвращают size_type.

typedef QStringView::storage_type

Псевдоним для char16_t для не-Windows или если определён Q_COMPILER_UNICODE_STRINGS. В противном случае псевдоним для wchar_t.

typedef QStringView::value_type

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

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

bool QStringView::endsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

bool QStringView::endsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

bool QStringView::endsWith(QChar ch) const

bool QStringView::endsWith(QChar ch, Qt::CaseSensitivity cs) const

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

Если cs — Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.

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

bool QStringView::startsWith(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

bool QStringView::startsWith(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

bool QStringView::startsWith(QChar ch) const

bool QStringView::startsWith(QChar ch, Qt::CaseSensitivity cs) const

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

Если cs — Qt::CaseSensitive (по умолчанию), поиск выполняется с учётом регистра; в противном случае поиск выполняется без учёта регистра.

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

QStringView::QStringView(const StdBasicString &str)

Создаёт представление строки на основе str. Длина взята из str.size().

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

Этот конструктор участвует в разрешении перегрузки только если StdBasicString является экземпляром std::basic_string с совместимым типом символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

Представление строки будет пустым тогда и только тогда, когда str.empty(). Не определено, может ли этот конструктор привести к пустому представлению строки (str.data() должна была бы вернуть nullptr для этого).

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

QStringView::QStringView(const QStringRef &str)

Создаёт представление строки на основе str.

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

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

QStringView::QStringView(const QString &str)

Создаёт представление строки для str.

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

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

QStringView::QStringView(const Char *str)

Создаёт представление строки для str. Длина определяется по первому встреченному Char(0).

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

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

Этот конструктор участвует в разрешении перегрузки только в том случае, если str не является массивом, и если Char — это совместимый тип символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

QStringView::QStringView(const Char (&)[N] string = ...)

Создаёт представление строки для строковой константы символов string. Длина устанавливается в N-1, исключая заключительный {Char(0)}. Если вам нужен весь массив, используйте конструктор из указателя и размера:

    auto sv = QStringView(array, std::size(array)); // using C++17 std::size()

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

Этот конструктор участвует в разрешении перегрузки только в том случае, если string является фактическим массивом и Char — это совместимый тип символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

QStringView::QStringView(const Char *first, const Char *last)

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

Диапазон [first,last) должен оставаться валидным на протяжении всего срока существования этого объекта-представления строки.

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

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

Этот конструктор участвует в разрешении перегрузки только в том случае, если Char — это совместимый тип символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

QStringView::QStringView(const Char *str, qsizetype len)

Создаёт представление строки для str с длиной len.

Диапазон [str,len) должен оставаться валидным на протяжении всего срока существования этого объекта-представления строки.

Передача nullptr в качестве str безопасна, если len равно 0, и приводит к представлению строки со значением null.

Поведение не определено, если len отрицательно или, при положительном значении, если str равно nullptr.

Этот конструктор участвует в разрешении перегрузки только в том случае, если Char — это совместимый тип символа. Совместимые типы символов: QChar, ushort, char16_t и (на платформах, таких как Windows, где это 16-битный тип) wchar_t.

QStringView::QStringView(std::nullptr_t)

Создаёт представление строки со значением null.

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

QStringView::QStringView()

Создаёт представление строки со значением null.

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

QChar QStringView::at(qsizetype n) const

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

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

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

QChar QStringView::back() const

Возвращает последний символ в строке. То же, что и last().

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

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

См. также front(), first() и last().

QStringView::const_iterator QStringView::begin() const

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

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

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

QStringView::const_iterator QStringView::cbegin() const

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

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

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

QStringView::const_iterator QStringView::cend() const

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

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

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

void QStringView::chop(qsizetype length)

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

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

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

См. также mid(), left(), right(), chopped() и truncate().

QStringView QStringView::chopped(qsizetype length) const

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

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

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

См. также mid(), left(), right(), chop() и truncate().

int QStringView::compare(QStringView other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Если cs равно Qt::CaseSensitive, сравнение чувствительно к регистру; в противном случае сравнение нечувствительно к регистру.

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

См. также operator==(), operator<() и operator>().

QStringView::const_reverse_iterator QStringView::crbegin() const

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

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

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

QStringView::const_reverse_iterator QStringView::crend() const

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

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

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

QStringView::const_pointer QStringView::data() const

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

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

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

bool QStringView::empty() const

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

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

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

QStringView::const_iterator QStringView::end() const

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

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

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

END_OF_DOCUMENT_MARKER

QChar QStringView::first() const

Возвращает первый символ в строке. То же, что и front().

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

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

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

QChar QStringView::front() const

Возвращает первый символ в строке. То же, что и first().

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

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

См. также back(), first() и last().

bool QStringView::isEmpty() const

Возвращает значение true, если данная строка-представление пустая, то есть size() == 0.

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

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

bool QStringView::isNull() const

Возвращает значение true, если эта строка-представление равна null, то есть data() == nullptr.

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

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

bool QStringView::isRightToLeft() const

Возвращает true , если строка читается справа налево.

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

См. также QString::isRightToLeft().

QChar QStringView::last() const

Возвращает последний символ в строке. То же, что и back().

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

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

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

QStringView QStringView::left(qsizetype length) const

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

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

См. также mid(), right(), chopped(), chop() и truncate().

int QStringView::length() const

То же, что и size(), но возвращает результат как int.

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

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

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

QStringView QStringView::mid(qsizetype start) const

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

Примечание: Поведение является неопределённым, когда start < 0 или start > size().

См. также left(), right(), chopped(), chop() и truncate().

QStringView QStringView::mid(qsizetype start, qsizetype length) const

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

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

Примечание: Поведение является неопределённым, когда start < 0, length < 0 или start + length > size().

См. также left(), right(), chopped(), chop() и truncate().

QStringView::const_reverse_iterator QStringView::rbegin() const

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

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

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

QStringView::const_reverse_iterator QStringView::rend() const

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

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

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

QStringView QStringView::right(qsizetype length) const

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

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

См. также mid(), left(), chopped(), chop() и truncate().

qsizetype QStringView::size() const

Возвращает размер данной строки-представления в кодовых точках UTF-16 (то есть, пары замещения считаются двумя для целей этой функции, как в QString и QStringRef).

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

QByteArray QStringView::toLatin1() const

Возвращает представление строки в формате Latin-1 в виде QByteArray.

Поведение является неопределённым, если строка содержит символы, не являющиеся Latin-1.

См. также toUtf8(), toLocal8Bit() и QTextCodec.

QByteArray QStringView::toLocal8Bit() const

Возвращает представление строки в локальном 8-битном формате в виде QByteArray.

QTextCodec::codecForLocale() используется для преобразования из Unicode. Если кодировка локального языка не может быть определена, эта функция делает то же, что и toLatin1().

Поведение является неопределённым, если строка содержит символы, не поддерживаемые локальной 8-битной кодировкой.

См. также toLatin1(), toUtf8() и QTextCodec.

QString QStringView::toString() const

Возвращает полную копию данных данной строки-представления в виде QString.

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

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

QVector<uint> QStringView::toUcs4() const

Возвращает представление строки в формате UCS-4/UTF-32 в виде QVector<uint>.

UCS-4 — это кодировка Unicode, поэтому она без потерь. Все символы из этой строки будут закодированы в UCS-4. Любая недопустимая последовательность кодовых единиц в этой строке заменяется символом замены Unicode (QChar::ReplacementCharacter, который соответствует U+FFFD).

Возвращаемый вектор не завершается нулём.

См. также toUtf8(), toLatin1(), toLocal8Bit() и QTextCodec.

QByteArray QStringView::toUtf8() const

Возвращает представление строки в формате UTF-8 в виде QByteArray.

UTF-8 — это кодировка Unicode и может представлять все символы в строке Unicode, такой как QString.

См. также toLatin1(), toLocal8Bit() и QTextCodec.

QStringView QStringView::trimmed() const

Удаляет начальные и конечные пробелы и возвращает результат.

Пробельные символы — это любые символы, для которых QChar::isSpace() возвращает true. Сюда входят ASCII-символы '\t', '\n', '\v', '\f', '\r' и ' '.

void QStringView::truncate(qsizetype length)

Усекает этот фрагмент строки до длины length.

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

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

См. также mid(), left(), right(), chopped() и chop().

const QStringView::storage_type *QStringView::utf16() const

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

storage_type равен char16_t.

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

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

QChar QStringView::operator[](qsizetype n) const

Возвращает символ в позиции n в этом фрагменте строки.

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

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

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

uint QStringView::qHash(QStringView key, uint seed = ...)

Возвращает значение хэш-функции для key, используя seed для инициализации вычисления.

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

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

Spec-Zone.ru

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