Spec-Zone.ru › Qt 6.0

Класс QStringView

Класс QStringView предоставляет унифицированный вид на UTF-16 строки с подмножеством чтений-только API класса 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_pointer constData() 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
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
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, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
qsizetype lastIndexOf(QLatin1String l1, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
int 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 в качестве автоматических переменных или членов данных необходимо позаботиться о том, чтобы данные, на которые ссылается строковый вью, (например, принадлежащие QString) сохранялись дольше, чем QStringView, на всех путях кода, чтобы строковый вью не ссылался на удалённые данные.

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

См. также QString.

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

QStringView::const_iterator

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

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

QStringView::const_pointer

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

QStringView::const_reference

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

QStringView::const_reverse_iterator

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

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

QStringView::difference_type

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

QStringView::iterator

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

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 предоставляет итератор обратного порядка типа const для QStringView в стиле STL.

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

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

QStringView::size_type

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

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

QStringView::storage_type

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

QStringView::value_type

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

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

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

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

qsizetype QStringView::lastIndexOf(QLatin1String l1, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

qsizetype QStringView::lastIndexOf(QStringView str, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

bool QStringView::contains(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

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

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

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

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

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

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

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

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

Возвращает индекс первого вхождения строки-представления str, латинской строки 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, латинской строкой 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().

int QStringView::compare(QChar ch) const

int QStringView::compare(QChar ch, Qt::CaseSensitivity cs) const

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

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

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

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

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

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

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

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

Фрагмент строки будет нулевым только в том случае, если 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.

Передача nullptr в качестве 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, указывающий на первый символ в строке.

Эта функция предоставляется для совместимости со 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().

[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.0] QStringView::const_pointer QStringView::constData() const

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

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

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

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

[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

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

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

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

QStringView::const_iterator QStringView::end() const

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

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

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

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

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

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

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

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

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

Возвращает true, если строка содержит валидные данные в кодировке UTF-16, или false в противном случае. true. 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().

int QStringView::length() const

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

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

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

См. также 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, а успех — в true.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

QByteArray QStringView::toLatin1() const

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

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

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

QByteArray QStringView::toLocal8Bit() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[since 6.0] NSString *QStringView::toNSString() const

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

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

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

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

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

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

Если ok не nullptr, ошибка обозначается установкой *ok в false, а успех – в 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, приводит к неопределенному поведению.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если ok не nullptr, ошибка обозначается установкой *ok в false, а успех – в 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.0/qstringview.html

Spec-Zone.ru

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