Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
Возник вопрос: Что предпочтительнее использовать для циклов? Вроде бы как ++i (исходя из идеи ООП), Но для обычных переменных типа integer возникают сомнения- есть подозрение, что большинство компиляторов работают еще так, как было в С-- сперва ++i, потом все операции, потом i++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:18 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denВозник вопрос: ++i (исходя из идеи ООП) как это связанно? насколько я помнею ++i и i++ отличается тем когда произойдет инкримент i. i=1; 2+(i++) = 3 2+i = 4 2+(++i) = 4 2+i = 4 вроде так писали в учебниках или я ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:23 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
for (i=0;i<10;++i) { что то мне подсказывает что i=0 в этом цыкле небудет } _____________________________________ А я хочу Брежнева, чтобы все было по прежнему... "Стволы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:25 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
Писали то писали, но проверьте пример i=1; i=(++i)+(++i); cout<<i; Получим 6, что мне удалось объяснить пережитком из С(тестовые примеры подтверждали, что для ++i не имеет значение приоритет скобок) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:26 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denВозник вопрос: Что предпочтительнее использовать для циклов? Вроде бы как ++i (исходя из идеи ООП), Но для обычных переменных типа integer возникают сомнения- есть подозрение, что большинство компиляторов работают еще так, как было в С-- сперва ++i, потом все операции, потом i++ Компиляторы компилируют то, что ты на[ш]кодил... Почитай в книжках про работу циклов, а ООП пока шо не трогай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:27 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
нету на работе с++ поэтому не притендую ниначо, просто востановил в пямяти что знал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:29 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
У меня тоже:-) Но этим примером удалось поставить препода в тупик, хотя курс по ООП на С++ он нам прочитал хороший(во всяком случае, мне так показалось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:31 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denПисали то писали, но проверьте пример i=1; i=(++i)+(++i); cout<<i; Получим 6, что мне удалось объяснить пережитком из С(тестовые примеры подтверждали, что для ++i не имеет значение приоритет скобок) А чем цифра 6 не нравится? Сначала работает первый ++i (i=2), потом второй (++i) (i=3), потом + (3+3=6) Читай про пре[пост]ин[де]кременты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:34 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denВозник вопрос: Что предпочтительнее использовать для циклов? Вроде бы как ++i (исходя из идеи ООП), Но для обычных переменных типа integer возникают сомнения- есть подозрение, что большинство компиляторов работают еще так, как было в С-- сперва ++i, потом все операции, потом i++ Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:34 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denУ меня тоже:-) Но этим примером удалось поставить препода в тупик, хотя курс по ООП на С++ он нам прочитал хороший(во всяком случае, мне так показалось) Показалось. Препода на мыло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:35 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denУ меня тоже:-) Но этим примером удалось поставить препода в тупик, хотя курс по ООП на С++ он нам прочитал хороший(во всяком случае, мне так показалось) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:37 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
А идея скобок для изменения приоритета операции забыта? Если создать простейший класс(из одной переменной) и переопределить операции инкремента, то работает именно с учетом скобок) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:38 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
barrabas насколько я помнею ++i и i++ отличается тем когда произойдет инкримент i. различий несколько ... 1. входные параметры 2. выходной параметр (как по типу, так и по значению) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:39 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy deni=1; i=(++i)+(++i); cout<<i; помойму результат считается неопределенным.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:39 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denА идея скобок для изменения приоритета операции забыта? Если создать простейший класс(из одной переменной) и переопределить операции инкремента, то работает именно с учетом скобок) А циклы тут при чём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:40 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denВозник вопрос: Что предпочтительнее использовать для циклов? Вроде бы как ++i (исходя из идеи ООП)Нормальный оптимизирующий компилятор, по идее, должен понять, что результат не используется и сгенерировать одинаковый код для обоих случаев. Если оптимизация по каким-либо причинам не работает, то префикс может оказаться эффективнее, т.к. постфикс (строго говоря) должен порождать временное значение. zloy denсперва ++i, потом все операции, потом i++А вот это уже совсем интересно: что за сначала и потом? У вас что, НЕСКОЛЬКО унарных операций в одном выражении (типа ++i--++)? ;-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:40 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy denА идея скобок для изменения приоритета операции забыта? Если создать простейший класс(из одной переменной) и переопределить операции инкремента, то работает именно с учетом скобок) Дезасемблируй и посмотри. Так как переменная одна, то и хранится она в одном месте. Перед тем как произвести сложение, ты ее инкрементируешь еще раз, а потом складываешь, саму с собой. Что-то типа: [SRC asm] inc ax ;2 inc ax ;3 add ax, ax ;6 [/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:43 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
i++ от ++i отличается не тем "когда произойдет инкремент", а возвращаемым значением. ++i возвращает уже увеличенное значение, а i++ прежнее. Поэтому если в качестве счетчика цикла используется int, то можно не заморачиваться, разницы никакой. Совет "исходя из идее ООП" использовать ++i основан на том, что эта операция в случае сложных типов и перегруженных операторов возможно будет стоить дешевле чем постфиксный инкремент из-за экономии на создании копии объекта. Код: plaintext А тут имеем неопределенное поведение, так писать не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:44 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
GoldminerА вот это уже совсем интересно: что за сначала и потом? У вас что, НЕСКОЛЬКО унарных операций в одном выражении (типа ++i--++)? ;-)))) Нет, просто префиксное сложение имеет наивысший приоритет, постфиксное-наинизший ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:45 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
GoldminerУ вас что, НЕСКОЛЬКО унарных операций в одном выражении (типа ++i--++)? ;-)))) Естесственно, это чисто теоретический вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:46 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
GoldminerА вот это уже совсем интересно: что за сначала и потом? У вас что, НЕСКОЛЬКО унарных операций в одном выражении (типа ++i--++)? ;-))))у постфиксных операций приоритет больше, чем у префиксных. Не забываем классику while(*src)*dst++=*src++; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:47 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
redskini++ от ++i отличается не тем "когда произойдет инкремент", а возвращаемым значением. ++i возвращает уже увеличенное значение, а i++ прежнее. Поэтому если в качестве счетчика цикла используется int, то можно не заморачиваться, разницы никакой. Совет "исходя из идее ООП" использовать ++i основан на том, что эта операция в случае сложных типов и перегруженных операторов возможно будет стоить дешевле чем постфиксный инкремент из-за экономии на создании копии объекта. Код: plaintext А тут имеем неопределенное поведение, так писать не надо. Про это я и говорил, у меня возникло ощущение что для int разницы никакой, а для классов она есть(за счет создания временного объекта для постфикса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:48 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
zloy den GoldminerА вот это уже совсем интересно: что за сначала и потом? У вас что, НЕСКОЛЬКО унарных операций в одном выражении (типа ++i--++)? ;-)))) Нет, просто префиксное сложение имеет наивысший приоритет, постфиксное-наинизшийВот я и справшиваю, перед ЧЕМ оно имеет приоритет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:56 |
|
||
|
++i или i++?
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/actualthread.aspx?tid=291318 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33817456&tid=2018775]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
97ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 287ms |
| total: | 489ms |

| 0 / 0 |
