Russian Qt Forum

Программирование => С/C++ => Тема начата: Fregloin от Февраль 12, 2014, 15:46



Название: Помогите с множествами пожалуйста
Отправлено: Fregloin от Февраль 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?


Название: Re: Помогите с множествами пожалуйста
Отправлено: Fregloin от Февраль 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);
    }
Все заработало


Название: Re: Помогите с множествами пожалуйста
Отправлено: kambala от Февраль 12, 2014, 20:31
прочитав название темы, я рассчитывал на математическую задачу :(