Spec-Zone.ru › Qt

Класс QStringView

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

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

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

Типы

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

Общедоступные функции

QStringView(const Container &str)
QStringView(const QString &str)
QStringView(const Char *str)
QStringView(const Char (&)[N] string = N)
QStringView(const Char *first, const Char *last)
QStringView(const Char *str, qsizetype len)
QStringView(std::nullptr_t)
QStringView()
QString arg(Args &&... args) const
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 str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int compare(QChar ch) const
int compare(QChar ch, Qt::CaseSensitivity cs) const
QStringView::const_iterator constBegin() const
QStringView::const_pointer constData() const
QStringView::const_iterator constEnd() const
bool contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
qsizetype count(const QRegularExpression &re) const
qsizetype count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype count(QStringView str, 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
QStringView first(qsizetype n) const
QChar first() const
QChar front() const
qsizetype indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(QLatin1String l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const
bool isEmpty() const
bool isNull() const
bool isRightToLeft() const
bool isValidUtf16() const
QStringView last(qsizetype n) const
QChar last() const
qsizetype lastIndexOf(QChar c, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QLatin1String l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const
qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const
qsizetype length() const
QStringView::const_reverse_iterator rbegin() const
QStringView::const_reverse_iterator rend() const
qsizetype size() const
QStringView sliced(qsizetype pos, qsizetype n) const
QStringView sliced(qsizetype pos) const
QList<QStringView> split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QList<QStringView> split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QList<QStringView> split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) 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
CFStringRef toCFString() const
double toDouble(bool *ok = nullptr) const
float toFloat(bool *ok = nullptr) const
int toInt(bool *ok = nullptr, int base = 10) const
QByteArray toLatin1() const
QByteArray toLocal8Bit() const
long toLong(bool *ok = nullptr, int base = 10) const
qlonglong toLongLong(bool *ok = nullptr, int base = 10) const
NSString * toNSString() const
short toShort(bool *ok = nullptr, int base = 10) const
QString toString() const
uint toUInt(bool *ok = nullptr, int base = 10) const
ulong toULong(bool *ok = nullptr, int base = 10) const
qulonglong toULongLong(bool *ok = nullptr, int base = 10) const
ushort toUShort(bool *ok = nullptr, int base = 10) const
QList<uint> toUcs4() const
QByteArray toUtf8() const
qsizetype toWCharArray(wchar_t *array) const
decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) tokenize(Needle &&sep, Flags... flags) const
QStringView trimmed() const
void truncate(qsizetype length)
const QStringView::storage_type * utf16() const
QChar operator[](qsizetype n) const

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

QStringView fromArray(const Char (&)[Size] string = Size)

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

size_t qHash(QStringView key, size_t seed = 0)
bool operator!=(QStringView lhs, QStringView rhs)
bool operator<(QStringView lhs, QStringView rhs)
bool operator<=(QStringView lhs, QStringView rhs)
bool operator==(QStringView lhs, QStringView rhs)
bool operator>(QStringView lhs, QStringView rhs)
bool operator>=(QStringView lhs, QStringView rhs)

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

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

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

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

При использовании как типа интерфейса QStringView позволяет одной функции принимать различные источники данных строк UTF-16. Одна функция, принимающая QStringView, таким образом, заменяет три перегрузки функций (принимающие QString и (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 контекстах вместо этого.

См. также QString.

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

QStringView::const_iterator

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

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

QStringView::const_pointer

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

QStringView::const_reference

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

QStringView::const_reverse_iterator

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

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

QStringView::difference_type

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

QStringView::iterator

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

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

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

QStringView::pointer

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

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

QStringView::reference

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

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

QStringView::reverse_iterator

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

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

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

QStringView::size_type

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

QStringView::storage_type

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

QStringView::value_type

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

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

[since 6.0] template <typename Needle, typename Flags> decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) QStringView::tokenize(Needle &&sep, Flags... flags) const

Разбивает строку на фрагменты-представления подстрок там, где встречается sep, и возвращает ленивую последовательность этих строк.

Эквивалентно

return QStringTokenizer{std::forward<Needle>(sep), flags...};

кроме того, что работает без включенного в компилятор C++17 Class Template Argument Deduction (CTAD).

См. QStringTokenizer для того, как sep и flags взаимодействуют, чтобы сформировать результат.

Примечание: Хотя эта функция возвращает QStringTokenizer, вы никогда не должны явно указывать её шаблоны аргументов. Если вы можете использовать C++17 Class Template Argument Deduction (CTAD), вы можете написать

QStringTokenizer result = sv.tokenize(sep);

(без шаблонов аргументов). Если вы не можете использовать C++17 CTAD, вы должны хранить возвращаемое значение только в auto переменных:

auto result = sv.tokenize(sep);

Это связано с тем, что шаблоны аргументов QStringTokenizer имеют очень тонкое зависимость от конкретного перегрузки tokenize() из которого они возвращены, и они обычно не соответствуют типу, используемому для разделителя.

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

См. также QStringTokenizer и qTokenize().

[since 6.2] qsizetype QStringView::lastIndexOf(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 6.2] qsizetype QStringView::lastIndexOf(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

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

[since 5.14] qsizetype QStringView::lastIndexOf(QChar c, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] qsizetype QStringView::lastIndexOf(QLatin1String l1, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] qsizetype QStringView::lastIndexOf(QStringView str, qsizetype from, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

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

[since 5.14] bool QStringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] bool QStringView::contains(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] bool QStringView::contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

[since 5.14] qsizetype QStringView::indexOf(QChar c, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] qsizetype QStringView::indexOf(QLatin1String l1, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 5.14] qsizetype QStringView::indexOf(QStringView str, qsizetype from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает индекс позиции первого вхождения строковой области str, строки Latin-1 l1 или символа ch соответственно в этой строковой области, выполняя поиск вперед с позиции from. Возвращает -1, если str не найдена.

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

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

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

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

bool QStringView::endsWith(QChar ch) const

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

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

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

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

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

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

bool QStringView::startsWith(QChar ch) const

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

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

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

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

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

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

[since 5.15] int QStringView::compare(QChar ch) const

[since 5.15] int QStringView::compare(QChar ch, Qt::CaseSensitivity cs) const

[since 5.15] int QStringView::compare(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает целое число, которое сравнивает с нулем, так как эта строковая область сравнивается со строкой Latin-1 l1 или символом ch соответственно.

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

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

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

[since 5.14] template <typename Args> QString QStringView::arg(Args &&... args) const

Заменяет вхождения %N в этой строке соответствующим аргументом из args. Аргументы не позиционные: первый из args заменяет %N с наименьшим N (все из них), второй из args заменяет %N с последующим наименьшим N и т. д.

Args может содержать всё, что неявно преобразуется в QString, QStringView или QLatin1String.

Кроме того, также поддерживаются следующие типы: QChar, QLatin1Char.

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

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

[since 6.0] QList<QStringView> QStringView::split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

[since 6.0] QList<QStringView> QStringView::split(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

См. QString::split(), чтобы узнать, как sep, behavior и cs взаимодействуют, формируя результат.

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

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

template <typename Container, if_compatible_container<Container>> QStringView::QStringView(const Container &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 QString &str)

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

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

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

template <typename Char> QStringView::QStringView(const Char *str)

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

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

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

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

template <typename Char, size_t N> QStringView::QStringView(const Char (&)[N] string = N)

Создаёт представление строки-литерала string. Представление охватывает массив до первой Char(0) или N, что наступит раньше. Если вам нужен весь массив, используйте fromArray() вместо этого.

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

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

См. также fromArray.

template <typename Char, if_compatible_char<Char>> QStringView::QStringView(const Char *first, const Char *last)

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

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

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

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

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

template <typename Char, if_compatible_char<Char>> QStringView::QStringView(const Char *str, qsizetype len)

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

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

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

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

QStringView::QStringView(std::nullptr_t)

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

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

QStringView::QStringView()

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

См. также 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).

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

QStringView::const_iterator QStringView::cbegin() const

То же самое, что begin().

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

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

QStringView::const_iterator QStringView::cend() const

То же самое, что end().

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

См. также cbegin(), end(), constEnd() и 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().

[since 5.12] int QStringView::compare(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает целое число, которое сравнивается с нулём, как это представление строки сравнивается со строкой str.

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

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

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

[since 6.1] QStringView::const_iterator QStringView::constBegin() const

То же самое, что begin().

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

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

[since 6.0] QStringView::const_pointer QStringView::constData() const

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

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

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

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

[since 6.1] QStringView::const_iterator QStringView::constEnd() const

То же самое, что end().

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

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

END_OF_DOCUMENT_MARKER

[since 6.1] bool QStringView::contains(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

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

Если совпадение выполнено успешно, и rmatch не nullptr, то также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.

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

См. также QRegularExpression::match().

[since 6.1] qsizetype QStringView::count(const QRegularExpression &re) const

Возвращает количество совпадений регулярного выражения re в представлении строки.

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

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

См. также QRegularExpression::globalMatch().

[since 6.0] qsizetype QStringView::count(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Возвращает количество вхождений символа ch в строку-ссылку.

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

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

См. также QString::count(), contains() и indexOf().

[since 6.0] qsizetype QStringView::count(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

См. также QString::count(), contains() и indexOf().

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

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

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

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

QStringView::const_iterator QStringView::end() const

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

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

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

[since 6.0] QStringView QStringView::first(qsizetype n) const

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

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

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

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

QChar QStringView::first() const

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

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

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

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

[static] template <typename Char, size_t Size, if_compatible_char<Char>> QStringView QStringView::fromArray(const Char (&)[Size] string = Size)

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

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

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

QChar QStringView::front() const

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

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

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

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

[since 6.1] qsizetype QStringView::indexOf(const QRegularExpression &re, qsizetype from = 0, QRegularExpressionMatch *rmatch = nullptr) const

Возвращает индекс первого совпадения регулярного выражения re в представлении строки, выполняя поиск вперёд с позиции from. Возвращает -1, если re не совпало нигде.

Если совпадение выполнено успешно, и rmatch не nullptr, то также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.

Примечание: Из-за того, как работает алгоритм поиска совпадений регулярных выражений, эта функция фактически будет искать совпадения повторно с начала представления строки до достижения позиции from.

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

bool QStringView::isEmpty() const

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

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

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

bool QStringView::isNull() const

Возвращает, является ли это представление строки пустым — то есть, является ли data() == nullptr.

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

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

[since 5.11] bool QStringView::isRightToLeft() const

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

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

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

[since 5.15] bool QStringView::isValidUtf16() const

Возвращает true если строка содержит валидные данные, закодированные в UTF-16, или false в противном случае.

Обратите внимание, что эта функция не выполняет никакой специальной валидации данных; она просто проверяет, можно ли успешно декодировать данные из UTF-16. Предполагается, что данные находятся в порядке байтов хоста; наличие BOM не имеет значения.

Эта функция была представлена в Qt 5.15.

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

[since 6.0] QStringView QStringView::last(qsizetype n) const

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

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

Эта функция была представлена в Qt 6.0.

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

QChar QStringView::last() const

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

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

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

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

[since 6.2] qsizetype QStringView::lastIndexOf(const QRegularExpression &re, QRegularExpressionMatch *rmatch = nullptr) const

Возвращает индекс последнего совпадения регулярного выражения re в фрагменте строки. Возвращает -1, если re не совпало нигде.

Если совпадение произошло и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.

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

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

[since 6.1] qsizetype QStringView::lastIndexOf(const QRegularExpression &re, qsizetype from, QRegularExpressionMatch *rmatch = nullptr) const

Возвращает индекс последнего совпадения регулярного выражения re во фрагменте строки, начинающегося перед индексом from. Если from равно -1, поиск начинается с последнего символа; если from равно -2, с предпоследнего символа и так далее. Возвращает -1, если re не совпало нигде.

Если совпадение произошло и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.

Примечание: Из-за того, как работает алгоритм сопоставления регулярных выражений, эта функция фактически будет производить совпадение многократно, начиная с начала фрагмента строки и до позиции from.

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

Эта функция была представлена в Qt 6.1.

qsizetype QStringView::length() const

Эквивалентно size().

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

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

QStringView::const_reverse_iterator QStringView::rbegin() const

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

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

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

QStringView::const_reverse_iterator QStringView::rend() const

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

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

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

qsizetype QStringView::size() const

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

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

[since 6.0] QStringView QStringView::sliced(qsizetype pos, qsizetype n) const

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

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

Эта функция была представлена в Qt 6.0.

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

[since 6.0] QStringView QStringView::sliced(qsizetype pos) const

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

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

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

Эта функция была представлена в Qt 6.0.

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

[since 6.0] QList<QStringView> QStringView::split(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const

Разделяет строку на фрагменты подстрок там, где регулярное выражение re совпадает, и возвращает список этих строк. Если re не совпадает нигде в строке, split() возвращает список с одним элементом, содержащим эту строку как фрагмент.

Примечание: Фрагменты в возвращаемом списке являются подфрагментами этого фрагмента; следовательно, они ссылаются на те же данные, что и он, и остаются допустимыми только до тех пор, пока эти данные остаются активными.

Эта функция была представлена в Qt 6.0.

[since 6.0] CFStringRef QStringView::toCFString() const

Создаёт CFString из этого QStringView.

Вызывающий владеет CFString и отвечает за его освобождение.

Примечание: Эта функция доступна только на macOS и iOS.

Эта функция была представлена в Qt 6.0.

[since 6.0] double QStringView::toDouble(bool *ok = nullptr) const

Возвращает строку, преобразованную в значение с плавающей точкой.

Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование не удалось по другим причинам (например, при подпотоке).

Если ok не nullptr, неудача сообщается путём установки *ok в false, а успех — путём установки *ok в true.

Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toDouble().

По историческим причинам, эта функция не обрабатывает разделители тысяч. Если вам нужно преобразовать такие числа, используйте QLocale::toDouble().

Эта функция была представлена в Qt 6.0.

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

[since 6.0] float QStringView::toFloat(bool *ok = nullptr) const

Возвращает строку, преобразованную в значение с плавающей точкой.

Возвращает бесконечность, если преобразование переполняет, или 0.0, если преобразование не удалось по другим причинам (например, при подпотоке).

Если ok не nullptr, неудача сообщается путём установки *ok в false, а успех — путём установки *ok в true.

Преобразование строки всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toFloat().

Эта функция была представлена в Qt 6.0.

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

[since 6.0] int QStringView::toInt(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toInt()

Функция была добавлена в Qt 6.0.

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

QByteArray QStringView::toLatin1() const

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

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

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

QByteArray QStringView::toLocal8Bit() const

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

В системах Unix это эквивалентно toUtf8(), в Windows используется текущая кодовая страница системы.

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

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

long QStringView::toLong(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLong()

Функция была добавлена в Qt 6.0.

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

qlonglong QStringView::toLongLong(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toLongLong()

Функция была добавлена в Qt 6.0.

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

NSString *QStringView::toNSString() const

Создаёт NSString из этого QStringView.

NSString возвращается с автоматическим освобождением.

Примечание: эта функция доступна только на macOS и iOS.

Функция была добавлена в Qt 6.0.

short QStringView::toShort(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toShort()

Функция была добавлена в Qt 6.0.

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

QString QStringView::toString() const

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

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

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

uint QStringView::toUInt(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned int с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUInt()

Функция была добавлена в Qt 6.0.

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

ulong QStringView::toULong(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong()

Функция была добавлена в Qt 6.0.

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

qulonglong QStringView::toULongLong(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned long long с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toULongLong()

Функция была добавлена в Qt 6.0.

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

ushort QStringView::toUShort(bool *ok = nullptr, int base = 10) const

Возвращает строку, преобразованную в unsigned short с основанием base, которое по умолчанию равно 10 и должно быть в диапазоне от 2 до 36, или 0. Возвращает 0, если преобразование не выполнено.

Если ok не nullptr, ошибка сообщается установкой *ok в false, а успех — установкой *ok в true.

Если base равно 0, используется соглашение языка C: если строка начинается с "0x", используется основание 16; если строка начинается с "0", используется основание 8; в противном случае используется основание 10.

Преобразование строк всегда происходит в локали 'C'. Для преобразования, зависящего от локали, используйте QLocale::toUShort()

Функция была добавлена в Qt 6.0.

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

QList<uint> QStringView::toUcs4() const

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

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

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

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

QByteArray QStringView::toUtf8() const

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

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

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

[since 5.14] qsizetype QStringView::toWCharArray(wchar_t *array) const

Преобразует эту строку в заданный массив array.

Вызывающий объект отвечает за обеспечение того, что array достаточно велик, чтобы вместить wchar_t кодирование этой строки (выделение массива той же длины, что и у строки, всегда достаточно). Массив кодируется в UTF-16 на платформах, где wchar_t занимает 2 байта (например, Windows); в противном случае (системы Unix) wchar_t предполагается, что занимает 4 байта, и данные записываются в UCS-4.

Примечание: Эта функция не записывает нулевой терминатор в конец array.

Возвращает количество wchar_t элементов, записанных в array.

Данная функция была добавлена в Qt 5.14.

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

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

Связанные нечлен-функции

bool operator!=(QStringView lhs, QStringView rhs)

bool operator<(QStringView lhs, QStringView rhs)

bool operator<=(QStringView lhs, QStringView rhs)

bool operator==(QStringView lhs, QStringView rhs)

bool operator>(QStringView lhs, QStringView rhs)

bool operator>=(QStringView lhs, QStringView rhs)

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

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

[since 5.10] size_t qHash(QStringView key, size_t seed = 0)

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

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

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

Spec-Zone.ru

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