Spec-Zone.ru › Qt 5.11

Класс QStringView

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

Заголовок: #include <QStringView>
qmake: QT += core
С тех пор: 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()
QStringView(std::nullptr_t)
QStringView(const Char *str, qsizetype len)
QStringView(const Char *first, const Char *last)
QStringView(const Char (&)[N] string = ...)
QStringView(const Char *str)
QStringView(const QString &str)
QStringView(const QStringRef &str)
QStringView(const StdBasicString &str)
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
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 = ...)

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

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

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", a 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 является очень неэффективным контейнером для QStringViews (он выделяет память в куче для каждого элемента). Используйте QVector (или std::vector) для хранения QStringViews вместо этого.

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

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

typedef QStringView::const_iterator

Этот typedef предоставляет итератор типа 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 предоставляет обратный итератор типа STL для QStringView.

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

typedef QStringView::difference_type

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

typedef QStringView::iterator

Этот typedef предоставляет итератор типа 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 предоставляет обратный итератор типа 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, строкой Latin-1 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, строкой Latin-1 l1 или символом ch соответственно; в противном случае возвращает false.

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

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

QStringView::QStringView()

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

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

QStringView::QStringView(std::nullptr_t)

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

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

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

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

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

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

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

Этот конструктор участвует в разрешении перегрузки только если 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 (&)[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 *str)

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

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

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

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

QStringView::QStringView(const QString &str)

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

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

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

QStringView::QStringView(const QStringRef &str)

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

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

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

QStringView::QStringView(const StdBasicString &str)

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

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

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

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

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

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().

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().

QChar QStringView::first() const

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

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

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

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

QChar QStringView::front() const

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

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

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

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

bool QStringView::isEmpty() const

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

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

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

bool QStringView::isNull() const

Возвращает, является ли эта строковая область нулевой — то есть, является ли 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

Возвращает латинское представление строки в виде QByteArray.

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

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

QByteArray QStringView::toLocal8Bit() const

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

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

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

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

QString QStringView::toString() const

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

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

Предупреждение: 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).

Возвращаемый вектор не является 0-терминированным.

См. также 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 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/archives/qt-5.11/qstringview.html

Spec-Zone.ru

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