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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с QList, добавление в начало списка  (Прочитано 5975 раз)
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) все нормально. Что не так делаю?
Записан
Steven_Orko
Гость
« Ответ #1 : Апрель 09, 2006, 22:48 »

Скажи, это ошибка, или так надо? Ты два раза пытаешься добавить в список одно и тоже...

Код:

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


Не пробывать продебажить insert, в каком месте он именно виснет? Скорее всего в каком-то бесконечном цикле...
Записан
Tirex
Гость
« Ответ #2 : Апрель 10, 2006, 06:04 »

Цитировать
Скажи, это ошибка, или так надо?

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

буду рад если скажете как это сделать. пишу под win в code::blocks.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #3 : Апрель 10, 2006, 09:06 »

возможно дело в том что ты прямо в цикле
for(int i=0;i<(top10p_cs.size());i++)
пытаешся вставить элементы
top10p_cs.insert(i,p);

как то это не правильно
Записан
Tirex
Гость
« Ответ #4 : Апрель 10, 2006, 13:56 »

всем спасибо за помощь. разобрался.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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