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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: сортировка  (Прочитано 3442 раз)
derik
Новичок

Offline Offline

Сообщений: 24



Просмотр профиля
« : Август 16, 2019, 19:59 »

Добрый день!
имеется qstandartitemmodel в которой нужно отсортировать по столбцу (1-2, неважно). т.к. эта операция нужна всего 1 раз - сделал внутри функции пузырьковую сортировку. но она не работает, цифры сортируются не так, от слова совсем. не могу понять где нарукожопил.
с обычным массивом все отлично работает. значения из массива специально вытянул, думал поможет...нет увы.
заранее спасибо!
Код:
    int countRow = DownNode->rowCount() - 1;
    int numcol = 1;

    for (int i = 0; i < countRow - 1; i++) {
        for (int j = 0; j < countRow - i - 1; j++) {
            double d1 = DownNode->data(DownNode->index(j, numcol)).toDouble();
            double d2 = DownNode->data(DownNode->index(j + 1, numcol)).toDouble();
            if (d1 > d2) {
                QList<QStandardItem *> temp_val = DownNode->takeRow(j);
                QList<QStandardItem *> temp_val1 = DownNode->takeRow(j + 1);
                DownNode->insertRow(j, temp_val1);
                DownNode->insertRow(j + 1, temp_val);
            }
        }
    }
Записан

инженер-конструктор
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #1 : Август 17, 2019, 12:36 »

вроде так:
Код
C++ (Qt)
for (int j = i + 1; j < countRow; j++)
Записан
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #2 : Август 17, 2019, 14:23 »

std::sort  чем не устраивала?
Записан
derik
Новичок

Offline Offline

Сообщений: 24



Просмотр профиля
« Ответ #3 : Август 17, 2019, 14:50 »

вроде так:
Код
C++ (Qt)
for (int j = i + 1; j < countRow; j++)


ок. попробую
Записан

инженер-конструктор
derik
Новичок

Offline Offline

Сообщений: 24



Просмотр профиля
« Ответ #4 : Август 17, 2019, 14:52 »

std::sort  чем не устраивала?

т.к. программирование скорее хобби и я не программист, то возможно всех мелочей и не знаю. такой вариант я вижу впервые и ни разу не применял, я просто в ассистенте прочитал что все функции сортировки необходимо переопределять. вспомнил. пробывал - он сортирует: 0 1 12 16 2 23 25 и тд и тп.
Записан

инженер-конструктор
RedDog
Частый гость
***
Offline Offline

Сообщений: 221


Просмотр профиля
« Ответ #5 : Август 17, 2019, 15:04 »

QCollator::setNumericMode
Записан
derik
Новичок

Offline Offline

Сообщений: 24



Просмотр профиля
« Ответ #6 : Сентябрь 03, 2019, 20:02 »

всем спасибо! советы все принял все заработало!!!!
Записан

инженер-конструктор
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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