Russian Qt Forum

Qt => Общие вопросы => Тема начата: Tirex от Апрель 09, 2006, 21:56



Название: Работа с QList, добавление в начало списка
Отправлено: Tirex от Апрель 09, 2006, 21:56
Объявил такой список:
    struct top10players
    {
        QString name;
        int score;
        int ptime;
    };

    QList<top10players> top10p_cs;
    QList<top10players> top10p_pz;

в процедуре прохожусь по списку:
void settings_file::CheckTop10(int game_time)
{
    if (top10p_cs.size()!=0)
    {
        for(int i=0;i<(top10p_cs.size());i++)
        {
            //после проверки в цикле если время лучше
         if (top10p_cs.ptime>game_time)
            {
            top10players p;
                p.name=Profiles[curr_player_idx].name;
                p.ptime=game_time;
            //пытаюсь добавить его впереди этой позиции
                //top10p_cs.prepend(p);
                //top10p_cs.insert(i,p); //здесь виснет
            }
        }
    }else
    {
        top10players p;
        p.name=Profiles[curr_player_idx].name;
        p.ptime=game_time;
        top10p_cs.push_back(p);
    }
}

Хотя если в том месте сделать  top10p_cs.append(p) все нормально. Что не так делаю?


Название: Работа с QList, добавление в начало списка
Отправлено: Steven_Orko от Апрель 09, 2006, 22:48
Скажи, это ошибка, или так надо? Ты два раза пытаешься добавить в список одно и тоже...

Код:

top10p_cs.prepend(p);  //Добавляешь в начало списка
top10p_cs.insert(i,p);  //Вставляешь в списко в позицию i


Не пробывать продебажить insert, в каком месте он именно виснет? Скорее всего в каком-то бесконечном цикле...


Название: Работа с QList, добавление в начало списка
Отправлено: Tirex от Апрель 10, 2006, 06:04
Цитировать
Скажи, это ошибка, или так надо?

и не то и не другое, я просто пробовал и insert и prepend. и тот и тот виснет а append в том же месте нет.
Цитировать
Не пробывать продебажить insert, в каком месте он именно виснет?

буду рад если скажете как это сделать. пишу под win в code::blocks.


Название: Работа с QList, добавление в начало списка
Отправлено: Admin от Апрель 10, 2006, 09:06
возможно дело в том что ты прямо в цикле
for(int i=0;i<(top10p_cs.size());i++)
пытаешся вставить элементы
top10p_cs.insert(i,p);

как то это не правильно


Название: Работа с QList, добавление в начало списка
Отправлено: Tirex от Апрель 10, 2006, 13:56
всем спасибо за помощь. разобрался.