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

Move конструктор && - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, есть ли в массиве значение, равное (min +max) / 2 http://www.cyberforum.ru/cpp-beginners/thread1021644.html
Здравствуйте , решите пожалуйста задачку) Поступила на заочку , а там ничего не объясняют...как учиться ума не приложу( такую дали : Определить, есть ли в массиве L значение, равное (min +max) / 2 и вывести номер первого значения, если есть, иначе сообщить, что нет.
C++ Постройте таблицу значений функции с помощью функции Постройте таблицу значений функции y=f(x) для Х€ с шагом h. Если в некоторой точке х функция не определена, то выведите на экран сообщение об этом. Замечание. Для решения задачи использовать вспомогательную функцию. y=3х+4:корень х2-1 http://www.cyberforum.ru/cpp-beginners/thread1021639.html
C++ Определить процедуру, позволяющую распознавать полные квадраты
Дано натуральное число N. Среди чисел 1, 2, 3, …., N найти все, которые можно представить в виде суммы квадратов двух натуральных чисел. (Определить процедуру, позволяющую распознавать полные квадраты).
C++ Изобразите скатывание шарика
Изобразите скатывание шарика по кривой, заданной уравнением y = (x-1)2 + ex на интервале . Как только шарик достигает конца кривой, он начинает двигаться в обратном направлении. Программа останавливается, если нажата клавиша Esc.
C++ Постройте график функции http://www.cyberforum.ru/cpp-beginners/thread1021631.html
Постройте график функции y = (x-1)2 + ex на интервале . Обозначьте оси координат, нарисуйте координатную сетку, укажите цены делений и пределы изменения координат x и y. Оси координат нарисуйте черным цветом, координатную сетку – серым, а график функции – розовым.
C++ Определить сколько раз встречается максимальная цифра в числе Дано натуральное число. Определить, сколько раз в нем встречается максимальная цифра (например, для числа 132233 ответ равен 3, для числа 46336 – 2). подробнее

Показать сообщение отдельно
gray_fox
What a waste!
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,359
Завершенные тесты: 3
29.11.2013, 20:47     Move конструктор &&
Цитата Сообщение от nexen Посмотреть сообщение
Правильно понял?
Примерно так, только относительно простых типов это смысла не имеет (в плане эффективности).
Вот такой пример:
C++
1
std::vector<> vector(std::vector<> {1, 2, 3});
Временный std::vector<> {1, 2, 3} после выполнения конструктора будет разрушен, но имея только конструктор копирования придётся всё равно делать его копию - а это лишняя работа, ведь можно просто поменять несколько указателей местами. Благодаря rvalue ref как раз и можно выделить такие случаи (когда аргумент временный) и с чистым сердцем проводить такие оптимизации.

Добавлено через 5 минут
Цитата Сообщение от nexen Посмотреть сообщение
И, выходит, && имеет обратную совместимость с &? Т.е, вид:
MyInteger(const int& x)
будет равен
MyInteger(const int&& x), если параметр Х, переданный в конструктор, - не временный объект, так?
эмм... не знаю, я не понял. К rvalue ref можно привязать только временное значение. Но можно иметь перегрузку:
C++
1
2
MyInteger(int const&);   // copy
MyInteger(int &&);   // move
Тогда при вызове с времменым значением будет вызван 2-й вариант, в остальных случаях - 1-й; т.е. можно различать когда агрумент lvalue, а когда - rvalue.

Добавлено через 3 минуты
Цитата Сообщение от nexen Посмотреть сообщение
А с шаблонами что?
С шаблонами там вступают "особые" правила вывода типов - reference collapsing rules, для поддержи perfect forwarding. Читали в блоге soon ?
 
Текущее время: 07:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru