244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|||||||||||
1 | |||||||||||
Критику в студию25.04.2013, 23:39. Показов 5598. Ответов 30
Метки нет (Все метки)
Доброго всем времени суток! Я вот написал такой себе класс матриц, прошу оценить его и посоветовать что можно улучшить или изменить, как повысить быстродействие или, возможно, что-то надо добавить.
Знаю,что надо сделать шаблон класса для разных типов данных, но дабы сейчас все было красиво и хорошо не загрязнял этим код! Любые дельные советы будут "лайкнуты"! matrix.h
1
|
25.04.2013, 23:39 | |
Ответы с готовыми решениями:
30
из Борланда в Студию Тестовое задание от работадателя. Хотелось бы услышать критику. Как войти в Visual студию? Где взять STLPort под 13 студию? |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
26.04.2013, 16:22 | 21 |
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
26.04.2013, 16:55 [ТС] | 22 |
Спасибо всем за то,что обратили внимание на эту тему! Я прочитал очень много дельных советов, а так же было очень много вопросов по поводу "почему одномерный массив", "шаблон" и зачем там функции, которые неуместны в классе.
По поводу одномерного массив, хочу сказать, что это только начальная стадия разработки проекта. Всем известно,что функция new очень дорога по времени. С помощью этого класса буду решаться СЛАУ размерностями 100 на 100,а возможно и больше. Потому оптимизируем как можем. По поводу шаблона было все сказано еще в самом вопросе. Функции, такие как преобразование Хаусхолдера будут вынесены в отдельный файл(возможно класс методов работы со СЛАУ) чуть позже, тоже самое касается класса вывода матрицы. В одном из первых постов было сделано замечание, на которое я особо хочу обратить внимание Действительно, это не "супер-класс", но я стремлюсь к чему-то стоящему, и да, от этого класса будут наследники. Что хочу сказать по поводу использования std::vector, не нравится мне эта идея. обращение к матрице увеличивает время работы программы. Так же было замечание,что нигде не используется проверка на размеры. Да, так оно и есть,ибо в самом начале файлов написано "/*проверка от дураков не предусмотрена*/", дабы пока что не загрязнять код. По поводу очень полезного замечания Если вы расскажете, как сделать перегрузку такого оператора для одномерного массива, буду очень благодарен, а пока что там есть перегрузка (), которая выполняет роль [][]. Отдельное спасибо хочу сказать Olivеr, 0x10, Kastaneda, diagon. Еще остается вопрос, а как сделать так,чтобы в операторах +, - и тд. не надо было создавать временную переменную данного класса?
1
|
26.04.2013, 17:12 | 23 |
при таком выделении памяти думаю что никак. Посмотри как я это делал(второй вариант кода): Небольшой шаблонный класс matrix: комментарии/критика относительно кода с точки зрения правильности написания
Там много лишнего, но общий подход, думаю, должен быть таким.
1
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
26.04.2013, 17:21 [ТС] | 24 |
yuron_477, спасибо. Правда из-за шаблонов очень сложно читается)потому не хотел пока писать все в шаблонах))но спасибо)
0
|
Higher
|
|
26.04.2013, 17:33 | 25 |
Можно возвращать прокси-объект, но это
Ну, можно принимать результирующую матрицу по ссылке (при этом переписать с оператора на метод) или пойти на другие извращения. Но это некрасиво. В нормальных компиляторах есть rvo/nrvo/rvalue-references, гарантирующие, что лишнего копирования/конструирования не будет.
2
|
Kastaneda
|
26.04.2013, 17:34
#26
|
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
26.04.2013, 17:39 [ТС] | 27 |
diagon, я вот только начал учиться пользоваться бустами и еще не успел заметить, что там уже есть матрицы) Спасибо,что открыли глаза на это)
0
|
Tulosba
|
26.04.2013, 17:48
#28
|
0
|
metaluga145
|
26.04.2013, 17:50
[ТС]
#29
|
0
|
diagon
|
26.04.2013, 18:06
#30
|
0
|
Kastaneda
|
26.04.2013, 21:23
Критику в студию
#31
|
0
|
26.04.2013, 21:23 | |
Как студию подружить со статической библиотекой скопилированой в MinGW ? На критику Надеюсь на критику Можно услышать критику Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |