26.02.2020, 00:20 [+3 UTC]
в нашей команде: 4 238 чел. | участники онлайн: 7 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.82 (22.02.2020)
JS-v.1.35 | CSS-v.3.37

Общие новости:
06.01.2020, 22:45

Форум:
11.02.2020, 11:38

Последний вопрос:
25.02.2020, 21:39
Всего: 151682

Последний ответ:
25.02.2020, 13:18
Всего: 259805

Последняя рассылка:
25.02.2020, 18:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
16.10.2009, 21:28 »
Dimon4ik
Отличный подход к задаче! Большое спасибо за помощь. [вопрос № 173315, ответ № 255481]
03.06.2011, 22:58 »
verona
Большое спасибо! Вы мне очень помогли! [вопрос № 183428, ответ № 267561]
23.10.2009, 17:32 »
Mishas
Спасибо! И за первый и за второй вариант. Ответом очень доволен! [вопрос № 173403, ответ № 255750]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 630
Gluck
Статус: Студент
Рейтинг: 274
solowey
Статус: Специалист
Рейтинг: 266

Перейти к консультации №:
 

Консультация онлайн # 143360
Раздел: • С / С++
Автор вопроса: Joekidd
Отправлена: 08.09.2008, 15:23
Поступило ответов: 0

Здравствуйте Игорь!

Тут в одном из вопросов (142.872) спрашивалось:
"Какая операция быстрее выполнится: j = i++ или j = ++i, если j и i пользовательского типа?"

Ответ:
"По скорости j = i++ и j = ++i совершенно одинаковы при любом типе. "

Это действительно так?
Ведь для пользовательских типов постфиксный оператор инкремента (i++) реализуется через копирование результирующего значения, т.е. условно так:

T operator ++(int)
{
T oldValue(*this);
++*this;
return oldValue;
}

в то время как префиксный так:

T& operator++()
{
// собственно реализация инкремента
return *this;
}

т.е. постфиксный оператор для пользовательских типов выполняется медленнее из-за создания лишнего объекта на стеке и вызова его конструктора копирования (+ еще копирование при возврате результата).

Вопрос: Где же правда?

PS: насколько мне известно, именно поэтому при работе с итераторами STL в обязательном порядке рекомендуется использовать префиксный оператор (если не требуется промежуточное значение).

Последнее редактирование 08.09.2008, 15:26 [неизвестный]

Состояние: Консультация закрыта

Oтветов пока не поступило.

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13125 сек.

© 2001-2020, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.82 от 22.02.2020
Версия JS: 1.35 | Версия CSS: 3.37