19.07.2019, 04:02 [+3 UTC]
в нашей команде: 3 748 чел. | участники онлайн: 0 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
19.07.2019, 02:41
Всего: 149939

Последний ответ:
18.07.2019, 12:04
Всего: 258705

Последняя рассылка:
17.07.2019, 22:15

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

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

Наша кнопка:

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

Отзывы о нас:
20.12.2015, 21:47 »
nal_0786
Вот это дааа. спасибо огромное!!!! прям не ожидал что это возможно решить!!!! ОГРОМНОЕ СПАСИБО!!!! [вопрос № 188463, ответ № 273092]
14.10.2009, 12:21 »
solandra
Спасибо за ответ, Вы подтвердили мое мнение. Смущает только одно: сельскохозяйственный рынок - это "базар" в худшем проявлении этого слова. Т.е. можно торговать как попало и кому попало. [вопрос № 173205, ответ № 255345]
18.09.2009, 10:56 »
Rem88-72
Отличный ответ на мой вопрос! Весь ответ представленн в полном виде. Огромное спасибо! [вопрос № 172285, ответ № 254321]

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

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

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

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

solowey
Статус: Практикант
Рейтинг: 205
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 196
Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 141

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

Консультация онлайн # 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.17512 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35