Как применять алгоритмы STL в Qt, на примере QStringList
и set_difference
, например? Если это возможно, конечно.
У всех кьютовских контейнеров есть методы begin()
и end()
(а также cbegin()
итп), которые возвращают STL-совместимые итераторы; есть они в том числе и у QList
, наследником которого является QStringList
. Их и надо передать в STL'евские функции обобщённых алгоритмов.
QSet<QString> strongWords{"криворучкие", "дураки", /*...*/};
//....
QString userOpinion = getUserOpinion();
QStringList userOpinionWords = qSort(userOpinion.split(QRegExp("\\s+")'));
QStrinList inapropriateWords;
std::set_difference(userOpinionWords.cbegin(), userOpinionWords.cend()
strongWords.cbegin(), strongWords.cend(),
std::inserter(inapropriateWords, inapropriateWords.begin()));
if (!inapropriateWords.isEmpty()) {
QMessageBox::info (QString ("Ваш отзыв очень важен для нас, но следующие слова неприемлимы: ").append(inapropriateWords.join(", ")));
throw std::runtime_error ("Пользователь был груб, поэтому мы бросим исключение и не будем его ловить.");
}
Также надо помнить, что по своей сути std::set_difference()
принимает на вход только упорядоченные контейнеры...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Верстаю макет из psd На первой картинке простое состояние блока а на второй hoverКак при наведении мыши сделать выезжающий оранжевый блок
Можно ли при нажатии на кнопку 'Сохранить' сохранять значение текстового поля? Допустим, я ввёл в текстовое поле текст "777", и мне нужно сохранить...