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

Оптимизация за счёт устранения временных объектов при использовании операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Sort vector, сортировка по двум полям структуры http://www.cyberforum.ru/cpp-beginners/thread1235399.html
Поскажите как отсортировать если: struct DATA{ string fir; string sec; double sm; }; vector <DATA> vec; vector <DATA>::iterator itv; bool myfunction (DATA i,DATA j) { return (atoi(i.fir.c_str()) < atoi(j.fir.c_str()) && (atoi(i.sec.c_str()) < atoi(j.sec.c_str()))); } sort(vec.begin(),vec.end(),myfunction);
C++ Удаление элемента односвязного списка Здравствуйте. Написал вот такой код. В программе происходит создание списка, вывод его на экран, а так же удаление первого элемента, меньшего заданного числа. Вот как раз с удалением возникла проблема: удаляется любой элемент списка, кроме первого. Когда хочу, чтоб удалился первый элемент, программа вылетает. Прошу помочь решить эту проблему. P. S. Числа при создании списка добавляются в... http://www.cyberforum.ru/cpp-beginners/thread1235368.html
C++ Прокомментировать код. QuickSort
Напишите пожалуйста как можно подробнее комментарии к каждой строке, а то я точно чайник и мало что понимаю #include <iostream> #include <cstring> using namespace std; void quicksort(char *items, int len);
C++ Графический символ ASCII в русской локали (консоль)
Здравствуйте, нужно вывести символ \xB2 (заштрихованный прямоугольник) так все работает, но если объявить setlocale(LC_ALL,"RUS") так как нужна кириллица, то вместо квадратика вопросительный знак, как быть ?
C++ Как можно явно вызвать оператор преобразования? http://www.cyberforum.ru/cpp-beginners/thread1235274.html
Доброго времени суток Как можно явно вызвать такой оператор преобразования? struct CL { template <class A, class B, class C> operator double() { return 6.6;
C++ Классы - что это? Что такое классы? Зачем они нужны? И как их использовать? подробнее

Показать сообщение отдельно
Accismus
0 / 0 / 0
Регистрация: 28.07.2014
Сообщений: 4
28.07.2014, 16:40     Оптимизация за счёт устранения временных объектов при использовании операторов
Доброго времени суток!

Вопрос в следующем: существует совет по оптимизации:

"Не создавайте временных объектов" со следующими поястнениями:

"Временные объекты создают, к примеру, вот таким кодом:

C++
1
2
3
    std::string s1, s2, s3;
    ...
    std::string s = s1 + s2 + s3;
В данном случае создается 2 лишних временных объекта: std::string tmp1 = s1 + s2; и std::string tmp2 = tmp1 + s3;. Правильная конкатернация строк выглядит вот так:

C++
1
2
3
4
    std::string s1, s2, s3;
    ...
    std::string s = s1;
    s += s2; s += s3;
"

Помогите новичку сориентироваться, это применимо только для конкатенации строк или для любого типа?
Грубо говоря эффективнее ли
C++
1
2
3
int a(0),b(1),c(2);
a += b;
a += c;
чем
C++
1
2
int a(0),b(1),c(2);
a = b+c;
?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru