Класс 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 |
Примечание: Все функции в этом классе являются многопоточными.
Типы public
| const_iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| iterator | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| storage_type | |
| value_type |
Public Functions
| 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, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(QLatin1String l1, qsizetype from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| qsizetype | lastIndexOf(const QRegularExpression &re, qsizetype from = -1, QRegularExpressionMatch *rmatch = nullptr) const |
| int | length() const |
| QStringView::const_reverse_iterator | rbegin() const |
| QStringView::const_reverse_iterator | rend() const |
| qsizetype | размер() const |
| QStringView | подстрока(qsizetype pos, qsizetype n) const |
| QStringView | подстрока(qsizetype pos) const |
| QList<QStringView> | разделить(QStringView sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QList<QStringView> | разделить(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| QList<QStringView> | разделить(const QRegularExpression &re, Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const |
| bool | начинается_с(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | начинается_с(QLatin1String l1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const |
| bool | начинается_с(QChar ch) const |
| bool | начинается_с(QChar ch, Qt::CaseSensitivity cs) const |
| CFStringRef | toCFString() const |
| double | к_double(bool *ok = nullptr) const |
| float | к_float(bool *ok = nullptr) const |
| int | к_int(bool *ok = nullptr, int base = 10) const |
| QByteArray | к_Latin1() const |
| QByteArray | к_Local8Bit() const |
| long | к_long(bool *ok = nullptr, int base = 10) const |
| qlonglong | к_longlong(bool *ok = nullptr, int base = 10) const |
| NSString * | toNSString() const |
| short | к_short(bool *ok = nullptr, int base = 10) const |
| QString | к_QString() const |
| uint | к_uint(bool *ok = nullptr, int base = 10) const |
| ulong | к_ulong(bool *ok = nullptr, int base = 10) const |
| qulonglong | к_ulonglong(bool *ok = nullptr, int base = 10) const |
| ushort | к_ushort(bool *ok = nullptr, int base = 10) const |
| QList<uint> | к_UCS4() const |
| QByteArray | к_UTF8() const |
| qsizetype | к_WCharArray(wchar_t *array) const |
| decltype(qTokenize(*this, std::forward<Needle>(needle), flags...)) | разбить(Needle &&sep, Flags... flags) const |
| QStringView | обрезанная() const |
| void | усечь(qsizetype length) |
| const QStringView::storage_type * | utf16() const |
| QChar | оператор[](qsizetype n) const |
Статические публичные члены
| QStringView | из_массива(const Char (&)[Size] string = Size) |
Связанные нечлены
| size_t | qХэш(QStringView key, size_t seed = 0) |
| bool | оператор!=(QStringView lhs, QStringView rhs) |
| bool | оператор<(QStringView lhs, QStringView rhs) |
| bool | оператор<=(QStringView lhs, QStringView rhs) |
| bool | оператор==(QStringView lhs, QStringView rhs) |
| bool | оператор>(QStringView lhs, QStringView rhs) |
| bool | оператор>=(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 в стиле STL для QStringView.
См. также reverse_iterator и const_iterator.
QStringView::difference_type
Псевдоним для std::ptrdiff_t. Предоставлен для совместимости со STL.
QStringView::iterator
Этот typedef предоставляет итератор const в стиле 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 предоставляет обратный итератор const в стиле STL для QStringView.
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, строки Latin-1 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, строки Latin-1 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, строки 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().
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.
Диапазон [str,len) должен оставаться допустимым в течение всего срока существования этого объекта представления строки.
Передача nullptr в качестве str безопасна, даже если len равно 0, и приводит к представлению пустой строки.
Поведение не определено, если len отрицательно или, при положительном значении 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(), 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().
[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
Возвращает указатель const на первый символ в строке.
Примечание: Массив символов, представленный возвращаемым значением, не является null-терминированным.
См. также begin(), end() и utf16().
bool QStringView::empty() const
Возвращает значение true, если этот фрагмент строки пуст — то есть, если size() == 0.
Эта функция предоставляется для совместимости со STL.
См. также isEmpty(), isNull(), size() и length().
QStringView::const_iterator QStringView::end() const
Возвращает const итератор STL-стиля, указывающий на воображаемый символ после последнего символа в списке.
Эта функция предоставляется для совместимости со 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). Если вы не хотите включать null-терминатор во фрагмент, вы можете chop() его, когда уверены, что он находится в конце. В качестве альтернативы, вы можете использовать перегрузку конструктора, принимающую литерал массива, который создаст фрагмент до, но не включая, первый null-терминатор в данных.
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
Возвращает значение 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 в противном случае.
Обратите внимание, что эта функция не выполняет специальную проверку данных; она просто проверяет, может ли она быть успешно декодирована из 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.1] qsizetype QStringView::lastIndexOf(const QRegularExpression &re, qsizetype from = -1, QRegularExpressionMatch *rmatch = nullptr) const
Возвращает позицию индекса последнего совпадения регулярного выражения re во фрагменте строки, начинающегося перед позицией from. Возвращает -1, если re нигде не совпало.
Если совпадение успешно, и rmatch не nullptr, оно также записывает результаты совпадения в объект QRegularExpressionMatch, на который указывает rmatch.
Функция была добавлена в Qt 6.1.
int QStringView::length() const
То же, что и size(), но возвращает результат как int.
Функция предоставляется для совместимости с другими контейнерами Qt.
Предупреждение: QStringView может представлять строки с более чем 231 символами. Вызов этой функции для фрагмента строки, для которого size() возвращает значение большее, чем INT_MAX, приводит к неопределённому поведению.
См. также empty(), isEmpty(), isNull() и size().
QStringView::const_reverse_iterator QStringView::rbegin() const
Возвращает const итератор обратного порядка, указывающий на первый символ в строке в обратном порядке.
Функция предоставляется для совместимости со 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
Возвращает строку, преобразованную в значение с плавающей точкой.
Возвращает бесконечность, если преобразование переполняется, или 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
Возвращает латинскую-1 кодировку строки в виде QByteArray.
Поведение не определено, если строка содержит символы, не являющиеся латинскими-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
Возвращает строку, преобразованную в qlonglong с основанием 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().
END_OF_DOCUMENT_MARKERQString QStringView::toString() const
Возвращает глубокую копию данных этого представления строки в виде QString.
Возвращаемое значение будет пустым QString только в том случае, если это представление строки равно null.
Предупреждение: 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, а успех — устанавливая *ok в 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, а успех — устанавливая *ok в 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, а успех — устанавливая *ok в 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, а успех — устанавливая *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).
Возвращаемый список не является 0-терминированным.
См. также 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.1/qstringview.html