Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что такая нотация идёт из обобщённых алгоритмов STL. Если у тебя while(i != j) {... ++j;}, то для изменения порядка обхода (произвольной) структуры с прямого на обратный не потребуется ничего менять в алгоритме - только подай в шаблон reverse iterator вместо обычного forward iterator. А вот с '<' вместо '!=' так уже не получится... так сказать, расплата за "гибкость-универсальность". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2016, 22:38 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
BagaBagaМне кажется, что такая нотация идёт из обобщённых алгоритмов STL.скорее всего, ибо на некоторых итераторах оператор < не реализуется, а оператор != - допустим всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 00:26 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NET Чтобы разобраться во всех ли случаях вариант с использованием != однозначно лучше. Давайте разберёмся во всех случаях. В вашем случае инкремент равен единице. В других случаях он может быть практически любым. Вы рассматриваете только один вариант из очень большого числа(пусть он и встречается столько раз, как все остальные вместе взятые), потому никаких выводов делать пожалуй не стоит. А эту историю с signed/unsigned знаю даже, далеко не самый опытный в Си человек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 01:41 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
SashaMercury.NET Чтобы разобраться во всех ли случаях вариант с использованием != однозначно лучше. Давайте разберёмся во всех случаях. В вашем случае инкремент равен единице. В других случаях он может быть практически любым. Вы рассматриваете только один вариант из очень большого числа(пусть он и встречается столько раз, как все остальные вместе взятые), потому никаких выводов делать пожалуй не стоит. Пожалуй что не стоит, ведь может быть не инкремент, а декримент, и тогда вообще надо открывать новую тему. Просто хотелось понять предпочтение авторов учебников (хотя вообще есть ли оно) операции "!=" над операцией "<" это вопрос больше методический или практический. SashaMercuryА эту историю с signed/unsigned знаю даже, далеко не самый опытный в Си человек Да я тоже "знаю" но периодически забываю, так как программировал профессионально только на C#, а там всё наоборот, т. е. если в выражении участвует знаковый и беззнаковый, то оба приводятся к знаковому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:13 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
egorychBagaBagaМне кажется, что такая нотация идёт из обобщённых алгоритмов STL.скорее всего, ибо на некоторых итераторах оператор < не реализуется, а оператор != - допустим всегда. Та же история что и с постфиксным и префиксным инкрементом для числовых всё равно ++x или x++, а для итераторов нет, поэтому считается что писать ++x предпочтительнее в любых случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 12:19 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
В одном учебнике пишут, что использование "val != max" предпочтительнее "val < max", потому что в этом случае мы будем уверены, что после выполнения цикла val будет в точности равно мах, во втором случае оно может быть и больше. Другими словами "val != max" явно декларирует, что в результате работы цикла не предполагается ни в каком случае выход val за границу max. Это упрощает понимание кода, тому кто будет читать его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 22:33 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NETВ одном учебнике пишут, что использование "val != max" предпочтительнее "val < max", потому что в этом случае мы будем уверены, что после выполнения цикла val будет в точности равно мах, во втором случае оно может быть и больше. Другими словами "val != max" явно декларирует, что в результате работы цикла не предполагается ни в каком случае выход val за границу max. Это упрощает понимание кода, тому кто будет читать его.Что значит упрощает понимание? А с чего вдруг человек увидевший while(val < max) должен думать что по выходу из цикла val==max??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 23:19 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NET, нарисуй вещественную ось. И покрытие двух условий. Одно из них - это выколотая точка. Другое - луч от точки до бесконечности не включая саму точку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2016, 23:49 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NETВ одном учебнике пишут А что за учебник ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 01:46 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
White Owl.NETВ одном учебнике пишут, что использование "val != max" предпочтительнее "val < max", потому что в этом случае мы будем уверены, что после выполнения цикла val будет в точности равно мах, во втором случае оно может быть и больше. Другими словами "val != max" явно декларирует, что в результате работы цикла не предполагается ни в каком случае выход val за границу max. Это упрощает понимание кода, тому кто будет читать его.Что значит упрощает понимание? А с чего вдруг человек увидевший while(val < max) должен думать что по выходу из цикла val==max??? Он и не будет так думать (будет находиться в неведении), если использовать val < max. Он будет думать (уверен), что val==max, если используется val != max. Поэтому если по задумке программиста пишущего код val не должен выходить за границу max, то и не стоит давать читающему код повода так думать используя val < max в условии выхода из цикла. SashaMercuryА что за учебник ? Accelerated C++ Andrew Koening, Barbara Moo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 10:14 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
Процитируйте пожалуйста, если вас не сильно затруднит. Первый автор известный товарищ, только фамилия у него Koenig, если не ошибаюсь, а второго я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 10:26 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NETWhite Owlпропущено... Что значит упрощает понимание? А с чего вдруг человек увидевший while(val < max) должен думать что по выходу из цикла val==max??? Он и не будет так думать (будет находиться в неведении), если использовать val < max. Он будет думать (уверен), что val==max, если используется val != max. Поэтому если по задумке программиста пишущего код val не должен выходить за границу max, то и не стоит давать читающему код повода так думать используя val < max в условии выхода из цикла. *Делает наивное лицо* А разве в Си не принято, что val вообще не существует при выходе из цикла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 10:29 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
.NETОн и не будет так думать .NETОн будет думать Ты уж определись думает твой кролик или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 10:40 |
|
||
|
while(val != max) или while(val < max)
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПроцитируйте пожалуйста, если вас не сильно затруднит. Первый автор известный товарищ, только фамилия у него Koenig, если не ошибаюсь, а второго я не знаю. Да, фамилия первого автора Koenig, я ошибся. Another reason to count from 0 is that we have to option of using != as our comparison instead of <=. This distinction may seem trivial, but it affects what we know about the state of program then loop finished. For example, if the condition is r != rows , then when the loop finishes, we know that r == rows . Because the invariant says that we have written r rows of output, we know that we have written exactly rows rows all told. On the other hand, if the condition is r <= rows , then all we can prove is that we have written at least rows rows of output. For all we know, we might have written more. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2016, 12:32 |
|
||
|
|

start [/forum/topic.php?fid=57&startmsg=39183097&tid=2018595]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 180ms |

| 0 / 0 |
