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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: поиск максимума  (Прочитано 9232 раз)
bitwise
Гость
« : Март 11, 2010, 14:48 »

Всем привет!

Народ, подскажите мне, новичку. Вот есть контейнер QList, заполненный числами. Есть ли в Qt метод, позволяющий определить наибольший элемент? Или нужно самому реализовать?

Спасибо!
Записан
alexman
Гость
« Ответ #1 : Март 11, 2010, 15:40 »

Можно сделать qSort и взять последний элемент Подмигивающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 11, 2010, 15:48 »

alexman, ты извращенец. Улыбающийся

Код
C++ (Qt)
QList<int> intList;
.......................
int max = intList.first();
 
for (int i = 1; i < intList.size(); i++)
   if (max < intList.at(i))
       max = intList.at(i);
 

Ы?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
alexman
Гость
« Ответ #3 : Март 11, 2010, 15:51 »

alexman, ты извращенец. Улыбающийся

Код
C++ (Qt)
QList<int> intList;
.......................
int max = intList.first();
 
for (int i = 1; i < intList.size(); i++)
   if (max < intList.at(i))
       max = intList.at(i);
 

Ы?

Почему это? Про скорость никто ничего не говорил!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Март 11, 2010, 16:09 »

Ну, да. Из пушки да по воробьям...
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Павел_F.
Гость
« Ответ #5 : Март 11, 2010, 16:16 »

Тогда уж:
Код
C++ (Qt)
QList<int> intList;
.......................
int max = intList.first();
for( QList<int>::iterator  i  = intList.begin(); i != intList.end(); i++)
   if( max < *i) max = *i;
 

А еще у Qt есть foreach и код вообще свернется в
Код
C++ (Qt)
QList<int> intList;
............................
int max = intList.first();
foreach ( int temp, intList) if( max < temp) max = temp;
 
« Последнее редактирование: Март 11, 2010, 16:22 от Павел_F. » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Март 11, 2010, 16:19 »

Тогда уж:
Код
C++ (Qt)
QList<int> intList;
.......................
int max = intList.first();
for( QList<int>::iterator  i  = intList.begin(), j = intList.end(); i != j; i++)
   if( max < *i) max = *i;
 
Подмигивающий
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
garryHotDog
Гость
« Ответ #7 : Март 11, 2010, 18:54 »

никто и не заметил первую строку -
Цитировать
Народ, подскажите мне, новичку
))))) так что первый вариант для тебя самый опитимальный - разницы в скорости и не заметишь для такой операции!
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #8 : Март 11, 2010, 19:06 »

Или нужно самому реализовать?

Нужно самому реализовать, как показали выше.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Март 11, 2010, 19:11 »

Ага, а кто будет проверять не пуст ли QList?  Улыбающийся
Чуть лучше qMax, хотя конечно много здесь не соптимизируешь
Записан
alexman
Гость
« Ответ #10 : Март 11, 2010, 19:28 »

Ага, а кто будет проверять не пуст ли QList?  Улыбающийся
Чуть лучше qMax, хотя конечно много здесь не соптимизируешь
Это и ежу понятно, что нужно проверить не пуст ли список Подмигивающий
Записан
bitwise
Гость
« Ответ #11 : Март 11, 2010, 21:33 »

Ого! спасибо всем кто отписался  Улыбающийся

Все понятно!

PS. Уже своял собственную функцию с for Улыбающийся
Записан
hackoff
Гость
« Ответ #12 : Март 12, 2010, 06:42 »

можно еще в отдельный поток вынести поиск максимума Улыбающийся
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #13 : Март 12, 2010, 18:54 »

И каждый новый максимум сигналом испускать  Смеющийся
Впрочем, если массив ОЧЕНЬ большой, то можно и QtCocurrent заюзать.
Записан
KuZ
Гость
« Ответ #14 : Март 12, 2010, 21:08 »

max_element из STL.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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