|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
Замечания/Улучшения для программы (Сборка сортировок)19.01.2019, 21:22. Показов 1083. Ответов 30
Метки нет (Все метки)
Здравствуйте! имеется данный код:
Также есть несколько замечаний: Я вот хотел в switch впихнуть string-переменную, но нет, поэтому решил if'ами пользоваться, но тут снова проблема, после того, как я напишу string-переменную в консоли, то в IorD почему автоматически впихивается \n, если юзать scanf, а если использовать cin >>, то всё нормально. Почему? Всем спасибо, заранее!
0
|
||||||
| 19.01.2019, 21:22 | |
|
Ответы с готовыми решениями:
30
Конечная точка улучшения программы Сборка программы для последующего запуска на другом ПК Книги для улучшения навыков |
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
||||||||
| 19.01.2019, 21:56 | ||||||||
|
Глупо создавать класс для каждой сортировки в этом случае, просто определите функции базового и все.
Зачем что-то возвращать из choice, если можно сделать ее void? Ничего важного она и так вам не вернет. Ну и по поводу main(). Не отклоняйтесь от стандарта, пусть она int возвращает, хотя это уже дело вкуса. Вроде все, что увидел, сказал. Люди дальше напишут еще что-нибудь
1
|
||||||||
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 19.01.2019, 23:18 [ТС] | |
|
А я её делал void, но мне ошибку выдавало, мол, посмотрите мануал, как надо описывать SortChoice::choice
0
|
|
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
| 19.01.2019, 23:37 | |
|
cinekst_207, можно конкретную ошибку при компиляции с void?
1
|
|
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 20.01.2019, 00:35 [ТС] | |
|
Pashka Durov, ЭМ! Странно, но уже нет её... Хмм, возможно на этапе создания я там что-то не учёл, что позже дописал и теперь она работает.
0
|
|
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
| 20.01.2019, 00:36 | |
|
cinekst_207, ну вот и славно)
1
|
|
|
447 / 333 / 172
Регистрация: 01.07.2015
Сообщений: 1,161
|
||
| 20.01.2019, 01:49 | ||
|
1
|
||
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 21.01.2019, 12:50 [ТС] | |
|
ReDoX, а что такое компаратор? Сравнивает что-то
0
|
|
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|||||||||||||||||||||
| 21.01.2019, 13:19 | |||||||||||||||||||||
|
cinekst_207,
Ну, например, как выполняется сортировка?
Например, по умолчанию сортировка строк будет сравнивать их содержимое. А сортировка
То же самое можно записать и с обычной функцией:
0
|
|||||||||||||||||||||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||
| 21.01.2019, 13:26 | ||
double *Mass?cinekst_207, если решили объединить несколько функций в один класс, то имеет смысл сделать эти функции статическими. Это позволит вызывать их без создания экземпляра класса.
0
|
||
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
| 21.01.2019, 13:33 | |
|
valen10, по-моему при
double *mass создается локальный в этой функции указатель, то есть для него выделяетсямпамять, а при double *&mass мы просто ссылаемсяДобавлено через 51 секунду Кстати я в начале амперсанды местами перепутал, извиняюсь
0
|
|
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||
| 21.01.2019, 13:41 | ||
![]() Но давайте подумаем: (1) Ссылку тоже надо передавать в функцию. (2) Что ссылка, что указатель на машинном уровне являются адресами. Т.е. размер у них тоже одинаковый. => Получается, меняя указатель на ссылку мы не экономим память. Это конечно уже придирки с моей стороны, не имеющие отношения к теме. Не хочется, чтобы вы городили эти закорючки *& без особой надобности.
1
|
||
| 21.01.2019, 13:46 | |
|
0
|
|
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
| 21.01.2019, 13:53 | |
|
Azazel-San, valen10,
То есть, если я правильно понял, то *& позволяет вызвать delete для переданного массива, а с * такого не прокатит?
0
|
|
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||
| 21.01.2019, 13:56 | ||
но поведение не определено.Добавлено через 48 секунд Ну и скорее не delete, a delete[], если уж для массива.
1
|
||
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
||
| 21.01.2019, 14:21 | ||
![]() Не определено, потому что можно передать вычисленный адрес? Или я не в ту сторону думаю?
0
|
||
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
||||||||||||||||||||
| 21.01.2019, 14:25 | ||||||||||||||||||||
|
что бы признать исходный код ненадежным. У вас должны быть железобетонные основания для того, что бы явным образом ослабить защиту компилятора, и писать некачественный код, вместо качественного. Не имейте привычки пачкать исходный код ненужными ему деталями. И совершенно недопустимо промышленными стандартами стилей кода. Помните об этом, когда будете писать тестовое задание при трудоустройстве. полностью аннулирует инвариант последних. В простонародье говорят: "лютый говнокод" - такое только в мусорное ведро. Причем в базовом классе метод принимает doubleТакое впечатление, что программист Код - в мусорку. Программиста - читать сначала Маконнелла (Совершенный код), затем Банду четырех (Шаблоны проектирования) Почему не указан noexcept ?Почему не указан const ?Какой тогда вообще смысл в том, что бы делать их методами класса? Ещё чуть чуть, и программист рискует заболеть ООП-головного мозга. должна быть беззнаковой ( size_t)nullptrЕсли же по замыслу функция ожидает валидный указатель, тогда должна быть проверка, контролирующая это условие. Итого: нарушение инварианта пред-условия. Отсутствует assert(arr);Программисту - букварь в зубы. Изучать раздел: "что такое ссылки, и с чем их едят" Если вы пишите на языке с++, тогда используйте средства именно с++ Если же решили использовать сишные функции ввода/выводы, то и используйте именно сишные варианты. Смешивать оба стиля в одном проекте - дурной тон. Провоцирует в исходном коде беспорядок. Лепить несколько предложений в одну длинную строчку - дурной тон. Ухудшает читабельность. nullptr ?int mainесли при этом никак не используете возвращаемый им результат? Должно быть: ++iИтого: Очень слабо. Даже для новичка.
1
|
||||||||||||||||||||
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|||
| 21.01.2019, 15:21 | |||
|
Добавлено через 5 минут noexcept + не виртуальный?)
1
|
|||
| 21.01.2019, 15:21 | |
|
Не по теме: Azazel-San, valen10, я думаю надо отдельную тему создать, а то эту захламляем
0
|
|
|
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
|
||
| 21.01.2019, 15:29 | ||
|
Деструктор итак по дефолту noexcept 2. Нет ни одной причины делать деструктор виртуальным, Если класс не использует полиморфизм (отсутствуют вирт. функции) 3. Не понятно, чего вы нукаете?
0
|
||
| 21.01.2019, 15:29 | |
|
Помогаю со студенческими работами здесь
20
Улучшения для среды delhpi Моды и другие улучшения для Дальнобойщиков 2
Апгрейд для улучшения баланса в комплектующих.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Рецензия / Мнение/ Перевод
https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs
. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|