7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
1 | ||||||
Замечания/Улучшения для программы (Сборка сортировок)19.01.2019, 21:22. Показов 837. Ответов 30
Метки нет (Все метки)
Здравствуйте! имеется данный код:
Также есть несколько замечаний: Я вот хотел в switch впихнуть string-переменную, но нет, поэтому решил if'ами пользоваться, но тут снова проблема, после того, как я напишу string-переменную в консоли, то в IorD почему автоматически впихивается \n, если юзать scanf, а если использовать cin >>, то всё нормально. Почему? Всем спасибо, заранее!
0
|
19.01.2019, 21:22 | |
Ответы с готовыми решениями:
30
Конечная точка улучшения программы Сборка программы для последующего запуска на другом ПК Книги для улучшения навыков Улучшения для среды delhpi |
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.01.2019, 15:47 | 21 |
Не всегда же.
Ну, они и могут появится, все предпосылы там есть. Запрещено?
0
|
1659 / 488 / 106
Регистрация: 17.05.2015
Сообщений: 1,497
|
|
21.01.2019, 16:24 | 22 |
Что значит "не всегда"?
Всегда, по дефолту. Нет ни одной причины дополнительно указывать noexcept функции, которая итак noexceptКогда появятся, тогда и нужно делать. Насчет предпосылок: есть предпосылка выбросить все классы, оставив обычные сишные функции.
0
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
21.01.2019, 21:46 [ТС] | 23 | |||||
Так а как рандомность чисел посекундно сделать без <ctime>? У меня же написан srand(time(0)). Вместо using namespace std постоянно писать std::? В чем, как вы говорите, "сокральный" смысл постоянно писать эту ерунду, если можно отделаться одним подкл. про-ва имён std? Всего-лишь вопрос (=
Добавлено через 1 час 38 минут Благодарю за советы, вот получившаяся версия:
1) Глобальная переменная(и вправду быдлокодерство); 2) Убрал using namespace std, всё же, ввести за привычку не помешают, тем более если советуют()Было бы классно, если бы ещё и объяснили почему (= ); 3) Занёс все сортировки в один класс SortChoice, правда я не понял всё равно, как comparator использовать, можете привести пример, прошу. Также есть вопрос, я когда сделал void *SortChoice::... я убрал return, и написало error C4716: 'SortChoice::choice': must return a value. Это из-за указателя?
0
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
21.01.2019, 21:51 | 24 |
Да
void * обозначает, что будет возвращен указатель неопр. типа (int, float, MyClass etc)А зачем в сортировках массивы возвращать, вы все равно и так их меняете по указателю
1
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
21.01.2019, 22:07 [ТС] | 25 |
Pashka Durov, бэлин, точно, спасибо XD
Добавлено через 1 минуту eva2326, а можете пожалуйста объяснить по поводу возвращаемого резалта в пост-версии инкремента? Как это в коде реализуется например, очень интересно
0
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|
21.01.2019, 22:17 | 26 |
cinekst_207, цикл с ++i отрабатывает быстрее на 300 наносекунд при 100 итерациях
1
|
1659 / 488 / 106
Регистрация: 17.05.2015
Сообщений: 1,497
|
||||||||||||||||
21.01.2019, 22:31 | 27 | |||||||||||||||
Эммм... ))
Не заметила))) Значит <ctime> действительно нужен) Рассуждайте логически) Зачем то же придумали "пространство имён". На самом деле они нужны, что бы: 1. Избежать коллизий имён. 2. Улучшается читабельность кода. Сразу понятно откуда взялась та, или иная функция, или класс. Реальные проекты часто состоят из множества различных библиотек, которые писали разные люди в разное время. Как можно гарантировать, что не будет ошибок из-за того, что в разных библиотеках используются одни и те же названия? Например, вы видите код:
using namespace std; где нибудь в хэдере,и окажется, что в разных библиотеках одинаковые имена - компилятор без указания пространства имен не сможет понять, какую именно версию вы имеете ввиду. У конструкции: using namespace std; (вместо std можно подставить другое имя)есть реально полезное свойство: Я приведу кусочек текста взятого по ссылке из другого источника.
На самом деле для примитивных типов, таких как int разница не существенная.Компиляторы сегодня достаточно умны, и могут оптимизировать такие случаи. Но если в качестве счетчика используется какой то более сложный тип данных, например итератор , то напрасное использования постфикса может привести к напрасному ухудшению эффективности кода.
1
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
21.01.2019, 22:38 [ТС] | 28 |
Pashka Durov, я так почитал, оказывается, я могу, грубо говоря, написать что постинкрементирую переменную, и потом старое значение сохранить и где-то использовать? Интересно, зачем это вообще нужно? Разве, если нам нужно "прошлое" значение инкриментированной переменной мы не можем просто создать новую переменную и инициализировать как n - 1?
0
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
|||||||||||
21.01.2019, 23:28 | 29 | ||||||||||
Сейчас приведу не очень качественный пример, но суть, думаю, поймете
0
|
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
|
|
22.01.2019, 00:12 | 30 |
А теперь внимательно прочитайте эту статью и сами исправьте свою ошибку.
1
|
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
|
||||||
22.01.2019, 00:19 | 31 | |||||
valen10, мда действительно, но помогло добавление скобок:
0
|
22.01.2019, 00:19 | |
22.01.2019, 00:19 | |
Помогаю со студенческими работами здесь
31
Моды и другие улучшения для Дальнобойщиков 2 Опции компиляторов для улучшения производительности Апгрейд для улучшения баланса в комплектующих. Программа для улучшения производительности системы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |