Spec-Zone.ru › Qt 6.0

Класс QStringList

Класс QStringList предоставляет список строк. Подробнее...

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

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

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

QStringList(QList<QString> &&other)
QStringList(const QList<QString> &other)
QStringList(const QString &str)
QStringList & operator=(QList<QString> &&other)
QStringList & operator=(const QList<QString> &other)
bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
bool contains(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(QStringView str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QStringList filter(const QRegularExpression &re) const
qsizetype indexOf(const QRegularExpression &re, qsizetype from = 0) const
QString join(const QString &separator) const
QString join(QStringView separator) const
QString join(QLatin1String separator) const
QString join(QChar separator) const
qsizetype lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const
qsizetype removeDuplicates()
QStringList & replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList & replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList & replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList & replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList & replaceInStrings(const QRegularExpression &re, const QString &after)
void sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)
QStringList operator+(const QStringList &other) const
QStringList & operator<<(const QString &str)
QStringList & operator<<(const QStringList &other)
QStringList & operator<<(const QList<QString> &other)

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

QMutableStringListIterator
QStringListIterator

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

QStringList наследуется от QList<QString>. Как и QList, QStringList является неявным образом общим. Он обеспечивает быстрый доступ на основе индекса, а также быстрые вставки и удаления. Передача списков строк в качестве параметров значений является быстрой и безопасной.

Вся функциональность QList также применима к QStringList. Например, вы можете использовать isEmpty() для проверки того, пуст ли список, и вы можете вызывать функции, такие как append(), prepend(), insert(), replace(), removeAll(), removeAt(), removeFirst(), removeLast(), и removeOne() для изменения QStringList. Кроме того, QStringList предоставляет несколько вспомогательных функций, которые упрощают обработку списков строк:

Инициализация

Конструктор по умолчанию создает пустой список. Вы можете использовать конструктор списка инициализаторов для создания списка с элементами:

    QStringList fonts = { "Arial", "Helvetica", "Times" };

Добавление строк

Строки могут быть добавлены в список с помощью функций insert() append(), operator+=() и operator<<().

operator<<() может использоваться для удобного добавления нескольких элементов в список:

    fonts << "Courier" << "Verdana";

Итерация по строкам

Для итерации по списку вы можете использовать либо позиции индексов, либо типы итераторов в стиле Java и стиле STL от QList:

Индексация:

    for (int i = 0; i < fonts.size(); ++i)
         cout << fonts.at(i).toLocal8Bit().constData() << Qt::endl;

Итератор в стиле Java:

    QStringListIterator javaStyleIterator(fonts);
    while (javaStyleIterator.hasNext())
         cout << javaStyleIterator.next().toLocal8Bit().constData() << Qt::endl;

Итератор в стиле STL:

    QStringList::const_iterator constIterator;
    for (constIterator = fonts.constBegin(); constIterator != fonts.constEnd();
           ++constIterator)
        cout << (*constIterator).toLocal8Bit().constData() << Qt::endl;

Класс QStringListIterator - это просто определение типа для QListIterator<QString>. QStringList также предоставляет класс QMutableStringListIterator, который является определением типа для QMutableListIterator<QString>.

Обработка строк

QStringList предоставляет несколько функций, позволяющих обрабатывать содержимое списка. Вы можете объединить все строки в списке строк в одну строку (с необязательным разделителем) с помощью функции join(). Например:

    QString str = fonts.join(", ");
     // str == "Arial, Helvetica, Times, Courier"

Аргументом join может быть один символ или строка.

Чтобы разбить строку на список строк, используйте функцию QString::split():

    QStringList list;
    list = str.split(',');
     // list: ["Arial", "Helvetica", "Times", "Courier"]

Аргументом split может быть один символ, строка или QRegularExpression.

Кроме того, функция operator+() позволяет вам объединять два списка строк в один. Для сортировки списка строк используйте функцию sort().

QString список также предоставляет функцию filter(), которая позволяет вам извлечь новый список, который содержит только те строки, которые содержат определенную подстроку (или соответствуют определенному регулярному выражению):

    QStringList monospacedFonts = fonts.filter(QRegularExpression("Courier|Fixed"));

Функция contains() сообщает, содержит ли список заданную строку, а функция indexOf() возвращает индекс первого вхождения заданной строки. Функция lastIndexOf() возвращает индекс последнего вхождения строки.

Наконец, функция replaceInStrings() последовательно вызывает QString::replace() для каждой строки в списке строк. Например:

    QStringList files;
    files << "$QTDIR/src/moc/moc.y"
          << "$QTDIR/src/moc/moc.l"
          << "$QTDIR/include/qconfig.h";

    files.replaceInStrings("$QTDIR", "/usr/lib/qt");
    // files: [ "/usr/lib/qt/src/moc/moc.y", ...]

См. также QString.

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

[since 5.4] QStringList::QStringList(QList<QString> &&other)

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

Перемещающее конструирование из QList<QString>.

После успешного построения other будет пустой.

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

QStringList::QStringList(const QList<QString> &other)

Создаёт копию other.

Эта операция занимает постоянное время, потому что QStringList использует неявное совместное использование. Это делает возврат QStringList из функции очень быстрым. Если изменён общий экземпляр, он будет скопирован (copy-on-write), и это займёт линейное время.

См. также operator=().

QStringList::QStringList(const QString &str)

Создаёт список строк, содержащий заданную строку str. Более длинные списки легко создавать таким образом:

    QStringList longerList = (QStringList() << str1 << str2 << str3);

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

[since 5.4] QStringList &QStringList::operator=(QList<QString> &&other)

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

Оператор перемещающей присваивания из QList<QString>. Перемещает список строк other в этот список строк.

После операции other будет пустой.

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

[since 5.4] QStringList &QStringList::operator=(const QList<QString> &other)

Оператор копирования присваивания из QList<QString>. Присваивает список строк other этому списку строк.

После операции other и *this будут равны.

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

bool QStringList::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает true , если список содержит строку str; в противном случае возвращает false. Поиск нечувствителен к регистру, если cs равен Qt::CaseInsensitive; поиск по умолчанию чувствителен к регистру.

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

[since 5.10] bool QStringList::contains(QLatin1String str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

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

Возвращает true , если список содержит строку str; в противном случае возвращает false. Поиск нечувствителен к регистру, если cs равен Qt::CaseInsensitive; поиск по умолчанию чувствителен к регистру.

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

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

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

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

Возвращает true , если список содержит строку str; в противном случае возвращает false. Поиск нечувствителен к регистру, если cs равен Qt::CaseInsensitive; поиск по умолчанию чувствителен к регистру.

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

QStringList QStringList::filter(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const

Возвращает список всех строк, содержащих подстроку str.

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

    QStringList list;
    list << "Bill Murray" << "John Doe" << "Bill Clinton";

    QStringList result;
    result = list.filter("Bill");
    // result: ["Bill Murray", "Bill Clinton"]

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

    QStringList result;
    foreach (const QString &str, list) {
        if (str.contains("Bill"))
            result += str;
    }

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

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

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

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

[since 5.0] QStringList QStringList::filter(const QRegularExpression &re) const

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

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

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

[since 5.0] qsizetype QStringList::indexOf(const QRegularExpression &re, qsizetype from = 0) const

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

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

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

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

QString QStringList::join(const QString &separator) const

Объединяет все строки списка в одну строку, разделяя каждый элемент заданным разделителем separator (который может быть пустой строкой).

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

[since 5.14] QString QStringList::join(QStringView separator) const

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

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

[since 5.8] QString QStringList::join(QLatin1String separator) const

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

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

[since 5.0] QString QStringList::join(QChar separator) const

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

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

[since 5.0] qsizetype QStringList::lastIndexOf(const QRegularExpression &re, qsizetype from = -1) const

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

Возвращает индекс последнего точного совпадения re в списке, ища назад с позиции from. Если from равно -1 (по умолчанию), поиск начинается с последнего элемента. Возвращает -1, если ни один элемент не соответствует.

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

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

qsizetype QStringList::removeDuplicates()

Эта функция удаляет дублирующиеся записи из списка. Записи не должны быть отсортированы. Они сохранят свой исходный порядок.

Возвращает количество удалённых записей.

QStringList &QStringList::replaceInStrings(const QString &before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Возвращает список строк, где в каждой строке текст before был заменён на текст after там, где находился текст before. Текст before сопоставляется чувствительно или нечувствительно к регистру в зависимости от флага cs.

Например:

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings("a", "o");
    // list == ["olpho", "beto", "gommo", "epsilon"]

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

[since 5.14] QStringList &QStringList::replaceInStrings(QStringView before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

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

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

[since 5.14] Список строк &QStringList::replaceInStrings(const QString &before, QStringView after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Это перегруженный метод.

Этот метод был добавлен в Qt 5.14.

[since 5.14] Список строк &QStringList::replaceInStrings(QStringView before, const QString &after, Qt::CaseSensitivity cs = Qt::CaseSensitive)

Это перегруженный метод.

Этот метод был добавлен в Qt 5.14.

[since 5.0] Список строк &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)

Это перегруженный метод.

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

Например:

    QStringList list;
    list << "alpha" << "beta" << "gamma" << "epsilon";
    list.replaceInStrings(QRegularExpression("^a"), "o");
    // list == ["olpha", "beta", "gamma", "epsilon"]

Для регулярных выражений, содержащих группы захвата, вхождения \1, \2, ..., в after заменяются строкой, захваченной соответствующей группой захвата.

Например:

    QStringList list;
    list << "Bill Clinton" << "Murray, Bill";
    list.replaceInStrings(QRegularExpression("^(.*), (.*)$"), "\\2 \\1");
    // list == ["Bill Clinton", "Bill Murray"]

Этот метод был добавлен в Qt 5.0.

void QStringList::sort(Qt::CaseSensitivity cs = Qt::CaseSensitive)

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

Сортировка выполняется с помощью алгоритма std::sort() из STL, который в среднем работает за линейно-логарифмическое время, т.е. O(n log n).

Если вам нужно отсортировать строки в произвольном порядке, рассмотрите использование класса QMap. Например, можно использовать QMap<QString, QString> для создания сортировки без учёта регистра (например, используя в качестве ключей нижний регистр строк, а в качестве значений — исходные строки), или QMap<int, QString> для сортировки строк по целочисленному индексу.

Список строк QStringList::operator+(const Список строк &other) const

Возвращает список строк, являющийся конкатенацией текущего списка строк и списка other.

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

Список строк &QStringList::operator<<(const QString &str)

Добавляет заданную строку str в этот список строк и возвращает ссылку на список строк.

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

Список строк &QStringList::operator<<(const Список строк &other)

Это перегруженный метод.

Добавляет список other в список строк и возвращает ссылку на последний список.

[since 5.4] Список строк &QStringList::operator<<(const QList<QString> &other)

Это перегруженный метод.

Добавляет список other в список строк и возвращает ссылку на последний список.

Этот метод был добавлен в Qt 5.4.

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

[alias] QMutableStringListIterator

Тип QStringListIterator предоставляет итератор для QStringList без возможности модификации.

QStringList предоставляет как итераторы Java-стиля, так и итераторы STL-стиля. Итератор Java-стиля без возможности модификации — это просто тип QMutableListIterator<QString>.

См. также QStringListIterator и QStringList::iterator.

[alias] QStringListIterator

Тип QStringListIterator предоставляет константный итератор для QStringList.

QStringList предоставляет как итераторы Java-стиля, так и итераторы STL-стиля. Константный итератор Java-стиля — это просто тип QListIterator<QString>.

См. также QMutableStringListIterator и QStringList::const_iterator.

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

Spec-Zone.ru

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