Russian Qt Forum
Ноябрь 18, 2024, 06:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с множествами пожалуйста  (Прочитано 2249 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Февраль 12, 2014, 15:46 »

Суть такая, есть много объектов QObject.
Нужно получить список их всех свойств, причем в двух видах.
Первый вид - это список всех свойст во всех объектах.
Второй вид - это список совместимых свойств, которые присутствуют для всех объектов.
Решил сделать через множества, и вот беда, не могу получить пересечение множеств, получаю пустое множество.
Для наглядности код
Код:
    for(QList<QSet<QString> >::const_iterator it = fpropsList.constBegin(); it!=fpropsList.constEnd(); ++it)
    {
        const QSet<QString> & currentPropList = *it;
        if(currentPropList.isEmpty())
            continue;
        if(fcompartibleMode)
            fresultList.intersect(currentPropList); //получаю пустое множество
        else
            fresultList.unite(currentPropList); //получаю множество всех свойств
    }
Почему не получается получить intersect?
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #1 : Февраль 12, 2014, 16:09 »

Разобрался, нужно пустое множество в котором будет храниться элемент сначала инициализировать
Код:
 for(QList<QSet<QString> >::const_iterator it = fpropsList.constBegin(); it!=fpropsList.constEnd(); ++it)
    {
        const QSet<QString> & currentPropList = *it;
        if(currentPropList.isEmpty())
            continue;
        if(fcompartibleMode)
        {
            if(fresultList.isEmpty())
                fresultList = currentPropList; //нужно внести данные для сравнения в первый раз
            else
                fresultList.intersect(currentPropList);
        }
        else
            fresultList.unite(currentPropList);
    }
Все заработало
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Февраль 12, 2014, 20:31 »

прочитав название темы, я рассчитывал на математическую задачу Грустный
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.161 секунд. Запросов: 23.