![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
здравствуйте
слышал говорят что ++a будет выполняться чуть быстрее чем a++, почему? |
|||
|
||||
| cristaloleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 15.6.2009 Где: Donetsk Репутация: нет Всего: нет |
уже была такая статья...ищи в важных
|
|||
|
||||
| fry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 4.10.2006 Репутация: нет Всего: 3 |
Могу разочаровать, с --а и а-- та же хрень творится.
Это сообщение отредактировал(а) fry - 26.12.2009, 09:30 |
|||
|
||||
| Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: -1 Всего: 1 |
Не знаю наверняка, но догадываюсь.
++a увеличивает значение a на единицу и возвращает это новое значение, а a++ возвращает старое значение. Таким образом, в первом случае достаточной одной ячейки памяти и работы над ней, а во втором необходимо две - для a и старого значения. -------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
| djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
Peter абсолютно прав. Добавлю лишь, что компиляторы уже давным давно научились превращать i++ в ++i, когда это возможно. Так что как правило об этом можно не париться.
-------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
спасибо
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Если a -это какой нибудь класс, то эффективность выполнения ++a и a++ целиком определяется им самим. В этом случае (с точки зрения здравого смысла и семантики префиксных и постфиксных операций инкремента) ++a должно быть эффективнее
|
|||
|
||||
| nmn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: нет Всего: 1 |
||||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Peter уже писал подробнее, но могу повторить: Префиксный инкремент должен увеличить сущность, к которой он применен, и вернуть ее (это семантика ++a в C++). Т.е. при реализации оператором в классе он обычно продвигает то, на что класс указывает, после чего возвращает референс на сам класс с помощью конструкции *this. Постфиксный инкремент так же увеличивает сущность, но возвращает ЕЕ КОПИЮ ДО увеличения. Что обычно реализуется как
|
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |