Форум программистов, компьютерный форум CyberForum.ru

Можно ли написать более оптимальный или простой код, используя цикл for? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При переводе string в long double теряется дробная часть http://www.cyberforum.ru/cpp-beginners/thread1506827.html
Помогите с программой. При переводе string в long double дробная часть становится равной нулю(не зависит от длины числа). #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> #include <string> using namespace std; class money {
C++ Merge и сортировка Почему merge не сортирует массив в алфавитном порядке? c: http://www.cyberforum.ru/cpp-beginners/thread1506825.html
Запрос через браузер C++
Наверное всех достали такие темы,но все же как через c++ wininet послать запрос (GET/POST) Что бы результат был виден в браузере,не смог найти подобной темы,в интернете в основном информация о том как получить HTML код страницы,кто сможет написать код например авторизации на киберфоруме тем особый респект. Один из вариантов который я пробовал для GET запроса hConnect =...
Формирование слова из заданных символов в одном массиве и их номеров в другом C++
У меня есть два массива int x={ 20 , 28, 1, 12, 9, 60, 24, 13 } и символьный массив char*xbuk={ "р", "е", "у" ,"в", "и" ,"т", "п", "с" } . У этих массивов равны их i .То есть каждому числу соответстует конкретная буква символьного массива. Как написать программу чтобы выводилась фраза ? Вернее, чтобы комп вывел конкретную фразу соответствующую числам: 60,28,24,28,20 1,13,28 ...
C++ Начинающий программист: с какой программы начать? http://www.cyberforum.ru/cpp-beginners/thread1506763.html
Привет всем!Я только начал интересоваться программированием и не знаю с чего мне начать,посоветуйте пожалуйста с какой программы начать?(За ранее спасибо)
C++ Парадигмы программирования процедурное программирования импиративное ООП все это Парадигмы программирование? если да все это облегчает писать код или дает другие возможности? подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.07.2015, 20:15     Можно ли написать более оптимальный или простой код, используя цикл for?
1.
Цитата Сообщение от rep plz Посмотреть сообщение
C++
1
2
3
{
 continue;
}
здесь не нужно, так как оно завершает тело цикла. Можно просто завершить тело цикла сразу после
Цитата Сообщение от rep plz Посмотреть сообщение
C++
1
2
3
4
if (ost != 0)
{
 sum += count;
}
.
2. Зачем нужна переменная ost? Скормить оператору сравнения можно и временную величину, а больше ost ни где не учитывается. Возможно это и не помешает автоматической оптимизациям, но я бы убрал:
C++
1
2
3
4
if ((count % 2)==0)
{
 sum += count;
}
.
3. Постфиксный инкремент оптимизируется только до префиксного, префиксный уже оптимален. Поэтому не
Цитата Сообщение от rep plz Посмотреть сообщение
C++
1
for (count = 0; count < 99; count++)
, а
C++
1
for (count = 0; count < 99; ++count)
.
4. Сравнение с любым не нулевым числом бывает медленнее, чем с нолём, так как требует . Поэтому ещё лучше
C++
1
for (count = 98; count >=0; --count)
. Но только если можно не в ущерб разрядности юзать только знаковый счётчик. Если диапазона представимых значений знакового типа не хватает, то для такого похода придётся поднимать разрядность, если в итоге превысить разрядность шины, то инкремент/декремент можно замедлить. А если превысить разрядность даже регистра, то инкремент/декремент будут гарантированно замедленны. Тогда придётся всё таки сравнивать с количеством шагов цикла. Если порядок значений счётчика важен сам по себе, то менять инкремент на декремент нельзя. Но здесь не важен.
5. По стандарту явно не инициированная переменная или содержит мусор, или инициируется своим конструктором. Так что полагаться на то, что в sum до первого увеличения будет 0, не стоит. А вот инициировать ли её в операции, или в декларации значения не имеет, так как инициируется она один раз, а сравнения и инкременты/декременты выполняются каждый раз.
 
Текущее время: 15:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru