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

Методы оптимизации кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать свою переменну в С++ http://www.cyberforum.ru/cpp-beginners/thread328357.html
Мне нужно подсчитывать очень большие числа, порядка 10^100000, и нужно создать свою переменную как можно это сделать?
C++ Работа в excel. срочно помогите срочно последнее задание по практике Идет k-я секунда суток (размещена в В10). Сколько полных часов h от 0 до 23 (в B11) полных минут m от 0 до 59 (в В12) и секунд s от 0 до 59 (в В13) прошло к этому времени. ---------------------------------------------------------------------------------------------------------- Для успешного решения задач необходимо ознакомиться с... http://www.cyberforum.ru/cpp-beginners/thread328355.html
C++ сервер с++
клиент - сервер работают если запушены на одном компе(127.0.0.1) у меня установлена виртуальная машина, попробовал на ней протестить - не соединяются. Virtualbox -> сетевой мост : реальная и виртуальные машины пингуют друг друга, в чем может быть проблема?! имя локальный адрес внешний адрес состояние TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING ...
C++ Добавление и удаление элементов в середину списка
Доброго всем времени суток!! Есть прога добавления и удаления элементов в списке, из начала, конца. А вот с серединой что-то туговато.. Кто подскажет функцию добавления и удаления из середины списка? //обход списка #include<iostream> using namespace std; class Node { private: int data;
C++ Дан текст. файл, сост. из одной или нескольких строк.подскажите,как написать программу http://www.cyberforum.ru/cpp-beginners/thread328322.html
Дан текст. файл, сост. из одной или нескольких строк. Каждая строка файла содержит числа, разделенные пробелами. Из каждой строки файла удалить числа, предшествующие первому положительному чуслу. Если в строке нет положительных чисел, оставить её без изменения
C++ динамический 2-х мерный массив помогите плиз вот код , нужно составить динамический 2-х мерный массив double **a int n,m,l; scanf("%d%d",&n,&m); a=(double **) colloc (m,sizeof(double*)); for (i=0;i<m;i++) a=(double *) colloc(n,sizeof (double)) подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
01.07.2011, 11:25     Методы оптимизации кода
int i;
...
x = array[ i++ ]; - более эффективно, чем
x = array[ ++i ];
сдесь дело не в эффективности, по вашему лучше допустить сознательную ошибку в программе взяв предыдущий элемент массива вместо следуещего только потому что так эффективно? что ж удачной вам отлаки

В первом случае процессор может одновременно (без ожидания сложения) начать складывать и получать значение по адресу в массиве, а во втором случае он это будет делать последовательно.
на то были и придуманы термины префикс и постфикс - для удобства программистам

if( a || b) - нужно первым ставить более вероятное собятие, для большей эффективности
if( func1() && func2() ) - нужно ставить более быстрый оператор первым
аналогично и сдесь дело не в эффективности, а в приоритете, при операции || в случае истинности 1-го операнда, 2-й просто напросто не вычисляется, а при операции && в случае ложности 1-го операнда, 2-й тоже не вычисляется, но это не вычисляется != эффективно

int a[ 1000 ];
for( int i =0; i<1000; ++i )
a[ i ] = 50;

Значительно эффективнее будет:
int* p = a;
for( int i =0; i<1000; ++i, ++p )
*p = 50;
с чего бы это?

float f = 1.0f;
*(int*)&f ^= 0x80000000; - быстрее чем
f *= -1.0f;
а тут так вообще без пол-литры не разберёшся
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru