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

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

Страниц: 1 2 [3] 4   Вниз
  Печать  
Автор Тема: Сортировка массива qsort  (Прочитано 24549 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #30 : Апрель 08, 2013, 19:35 »

Ещё печальней наблюдать за тем, как некоторые ретрограды изобретают немыслимые костыли, а потом всячески ищут оправдания своим архитектурным изыскам)  
Ну хорошо, пусть я ретроград, а Вы прогрессивный талант Улыбающийся Но я ничего не изобретал, написал незатейливо printf - и все дела. А Вы целый template класс соорудили только для того чтобы строку перевести. Зачем же говорить что это я изобретаю и доказываю - не было такого  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #31 : Апрель 08, 2013, 20:37 »

А Вы целый template класс соорудили только для того чтобы строку перевести.
Вот ключевой момент: считать создание класса/шаблона экстраординарным событием. Подмигивающий

2m_ax Igors не использует C++, он пишет на старом добром процедурном C с использованием некоторых возможностей C++: коллекции, немного классов (в основном структуры), очень редко - шаблоны для примитивных вещей. Все.
Все твои "изыски" ему просто не нужны... Пока у него самого не возникнет в этом потребности, а ее скорее всего не возникнет, потому что есть не скрываемый страх перед всем новым и неизвестным. Подмигивающий
« Последнее редактирование: Апрель 08, 2013, 20:39 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #32 : Апрель 09, 2013, 07:16 »

Вот ключевой момент: считать создание класса/шаблона экстраординарным событием. Подмигивающий
Создание класса/структуры ничем экстраординарным не является. А вот создание template - безусловно. Нужны веские основания, и даже если они есть - часто лучше воздержаться. Потому что дальше будет писаться в угоду уже созданным template, что нередко полностью извращает логику приложения. Хороший пример разумных template - те же исходники Qt, никаких трудностей с пониманием не возникает, потому что "в меру" и "на своем месте".

QPoint/QPointF
QPolygon/QPolygonF
и.т.д

Почему же это не template - ведь все идентично?

[/offtop]
Old, по поводу Ваших оценок - они во многом справедливы Улыбающийся Но все же "не судите и не судимы будете"

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #33 : Апрель 09, 2013, 08:49 »

А вот создание template - безусловно. Нужны веские основания, и даже если они есть - часто лучше воздержаться. Потому что дальше будет писаться в угоду уже созданным template, что нередко полностью извращает логику приложения. Хороший пример разумных template - те же исходники Qt, никаких трудностей с пониманием не возникает, потому что "в меру" и "на своем месте".

QPoint/QPointF
QPolygon/QPolygonF
и.т.д

Почему же это не template - ведь все идентично?
Поясните пожалуйста, как бы "полностью извратилась логика приложения", если бы типы QPoint и QPointF происходили из одного шаблона. Улыбающийся

Кстати, трудности с пониманием как правило от незнания. Улыбающийся
Если что-то не понимаешь, не нужно винить автора "непонятного", лучше постараться узнать то, что знает он и сразу все станет понятным.

Old, по поводу Ваших оценок - они во многом справедливы Улыбающийся Но все же "не судите и не судимы будете"
В писание программ на C нет ничего дурного, очень много людей делают это каждый день. Улыбающийся
« Последнее редактирование: Апрель 09, 2013, 08:56 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #34 : Апрель 09, 2013, 10:12 »

Кстати, трудности с пониманием как правило от незнания. Улыбающийся
Если что-то не понимаешь, не нужно винить автора "непонятного", лучше постараться узнать то, что знает он и сразу все станет понятным.
Какой-то у Вас ход мысли.. ну "упрощенный". То есть если я "знаю" - то я обязательно должен это применять - иначе "неграмотный", так, что ли? Улыбающийся Результат печальный: текст превращается в демонстрацию знаний - в ущерб содержательной части. Дальнейшая поддержка такого кода невыносима.

например число знаков после запятой, легко:
Код
C++ (Qt)
std::cout << setprecision(6) << Table<decltype(arr)>(arr, 10) << std::endl;
 
 
У человека впервые это увидевшего изучение подробностей Table уже займет минуты. Тут возникает др задача - число знаков. И класс Table уже моментально забыт (наигрался), лепится первое подходящее. "Не плодите сущности"  - фраза избитая но верная. Зачем был нужен класс-однодневка с ничтожным КПД? Видимо только чтобы потренироваться с decltype  Улыбающийся

Поясните пожалуйста, как бы "полностью извратилась логика приложения", если бы типы QPoint и QPointF происходили из одного шаблона.  Улыбающийся
Так я же незнающий/непонимающий, чего же Вы у меня спрашиваете?  Улыбающийся Это Вы мне объясните
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #35 : Апрель 09, 2013, 10:27 »

Какой-то у Вас ход мысли.. ну "упрощенный". То есть если я "знаю" - то я обязательно должен это применять - иначе "неграмотный", так, что ли? Улыбающийся  
Нет, просто вы так "упрощенно" его поняли. Улыбающийся
Не нужно обвинять в неправильности то, что не понимаете.

У человека впервые это увидевшего изучение подробностей Table уже займет минуты. Тут возникает др задача - число знаков. И класс Table уже моментально забыт (наигрался), лепится первое подходящее. "Не плодите сущности"  - фраза избитая но верная. Зачем был нужен класс-однодневка с ничтожным КПД? Видимо только чтобы потренироваться с decltype  Улыбающийся
Нет. Пока вы "играетесь" с одними float все замечательно, вы в 100500 местах вывели их printf. А теперь попробуйте заменить этот float на NewNumberType, во всех 100500 printf. Улыбающийся

Так я же незнающий/непонимающий, чего же Вы у меня спрашиваете?  Улыбающийся Это Вы мне объясните
Вот именно, но мнение свое высказали - это все плохо, непонятно и к использованию непригодно. Улыбающийся
Но забыли добавить, что это только для вас. Подмигивающий
« Последнее редактирование: Апрель 09, 2013, 10:30 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #36 : Апрель 09, 2013, 15:47 »

..что не понимаете.

Вот именно, но мнение свое высказали - это все плохо, непонятно ..
Откуда такое напор на мое непонимание?  Улыбающийся Я понял все что написал m_ax, но хорошим решением это не считаю. Ну вышел я из того возраста когда всем восторгаются и все берут на вооружение. Вам кстати тоже недолго осталось  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #37 : Апрель 09, 2013, 16:27 »

но хорошим решением это не считаю.
Так покажите хорошее решение. printf это не оно. Улыбающийся

Ну вышел я из того возраста когда всем восторгаются и все берут на вооружение. Вам кстати тоже недолго осталось  Улыбающийся
А это от возраста не зависит. Подмигивающий
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #38 : Апрель 09, 2013, 17:02 »

Так покажите хорошее решение. printf это не оно. Улыбающийся
Хорошее решение - уметь ждать и (пока) ничего не делать. Что пока нужно? Напечатать. Ну и делаю тем же printf или cout << или еще как. Через какое-то время накопится десяток, ну а может и сотня таких. Стану ли я испытывать неудобства, захочу ли это как-то организовать? Не знаю, может и нет. Но если да - я буду хорошо знать что (из моего десятка/сотни). А "скороспелое обобщение" ничего хорошего не дает.

Однако Вы уклонились от ответа: почему же QPoint(F) не template - а ведь вроде бы напрашивается?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #39 : Апрель 09, 2013, 17:43 »

Однако Вы уклонились от ответа: почему же QPoint(F) не template - а ведь вроде бы напрашивается?
Понятия не имею. Я не являюсь разработчиком Qt.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #40 : Апрель 09, 2013, 17:55 »

Однако Вы уклонились от ответа: почему же QPoint(F) не template - а ведь вроде бы напрашивается?
И ничего там не напрашивается.
ну и так, к сведению:
Qt начали разрабатывать в 1991-м, шаблоны были только представлены в 1993-м
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #41 : Апрель 09, 2013, 20:41 »

Так покажите хорошее решение. printf это не оно. Улыбающийся
Хорошее решение - уметь ждать и (пока) ничего не делать. Что пока нужно? Напечатать. Ну и делаю тем же printf или cout << или еще как. Через какое-то время накопится десяток, ну а может и сотня таких. Стану ли я испытывать неудобства, захочу ли это как-то организовать? Не знаю, может и нет. Но если да - я буду хорошо знать что (из моего десятка/сотни). А "скороспелое обобщение" ничего хорошего не дает.
Вот в этом то и проблема.. Ведь по сути, здесь все прекрасно понимают, что  дело даже не в конкретном printf.. На месте этого printf уже не раз вставали другие костыли, как например попытка реализации операторов сравнения для классов, для которых они совершенно не свойственны, странные постановки задач и т.п..
Причём всегда у Вас наблюдается какая то предсказуемая неудовлетворённость всем тем, что выходит за рамки, как заметил Old, концепций С-подхода в программировании..
 Грустный  
« Последнее редактирование: Апрель 09, 2013, 21:25 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #42 : Апрель 10, 2013, 09:33 »

[Причём всегда у Вас наблюдается какая то предсказуемая неудовлетворённость всем тем, что выходит за рамки, как заметил Old, концепций С-подхода в программировании..
 Грустный  
Улыбающийся Та я ж не против "модерна" и с интересом присматриваюсь к новому. Вот только в оценках не согласен. "Ах какая изумительная конструкция, давайте ее немедленно воткнем в свой код". А стоит чуть копнуть - и выясняется что толку-то не очень много. Обычно достаточно предложить чуть-чуть более сложную задачу - и все ("достаточно одной таблетки").

Зато самооценка "начитавшегося" резко возрастает Улыбающийся. Многочисленные "вы не понимаете", нотки превосходства ("ну и так, к сведению"). Он наивно полагает что забив себе голову модными штучками - он сильно вырос. Ну жизнь и реальные задачи покажут
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #43 : Апрель 10, 2013, 16:03 »

А стоит чуть копнуть - и выясняется что толку-то не очень много. Обычно достаточно предложить чуть-чуть более сложную задачу - и все ("достаточно одной таблетки").
Правильно - чуть задачу усложнили и printf поплыл, а потоки бодры и веселы. Улыбающийся

Код
C++ (Qt)
       for( int i = 0; i < arr.size(); ++i )
               cout << setw( 8 ) << arr[ i ] << ((i % 10)? ", " : "\n");
 
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #44 : Апрель 10, 2013, 16:47 »

Правильно - чуть задачу усложнили и printf поплыл, а потоки бодры и веселы. Улыбающийся

Код
C++ (Qt)
       for( int i = 0; i < arr.size(); ++i )
               cout << setw( 8 ) << arr[ i ] << ((i % 10)? ", " : "\n");
 
Кстати правильно ((i + 1) % 10). А так не возражаю, нормальный человеческий текст, без выкрутасов. Ну поток, да, не так компактно как printf, но зато свои плюсы. Да, оператор << придется определить, это норм. А чего же это Вас не несет в заумность итераторов и темплейтов? Чего же всего лишь скромный цикл for? Это ж "не круто"! Может потому что это не только проще, но и лучше?  Улыбающийся
Записан
Страниц: 1 2 [3] 4   Вверх
  Печать  
 
Перейти в:  


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