c++ STL; (vector) подскажите как в интервале заменить элементы
ПРИМЕР: создали последовательность 1 2 3 4 5 6 7 8
ввожу интервал например от 2 по 5 заменить на 0
ВЫВОД: 1 2 0 0 0 7 8
Ответы
Ответ дал:
0
циклом for можно реализовать задачу.
for (i = 2; i < 5; i ++)
v[i] = 0;
for (i = 2; i < 5; i ++)
v[i] = 0;
Ответ дал:
0
* Нельзя использовать константы типа 2 и 5 или 0 в коде, это называется Magic Numbers и является очень плохой практикой
* Никто не пишет i++, всегда пишут ++i, если вам неизвестно почему, советую обратится к документации и прочитать про функционирование префиксного и постфиксный инкремента а в частности о выполняемых ими опирациями и в чем разницв
* Всегда пишите скобки ограничивающие область видимости для данного цикла, наделаете много ошибок если будете этим пренебрегать.
* Никто не пишет i++, всегда пишут ++i, если вам неизвестно почему, советую обратится к документации и прочитать про функционирование префиксного и постфиксный инкремента а в частности о выполняемых ими опирациями и в чем разницв
* Всегда пишите скобки ограничивающие область видимости для данного цикла, наделаете много ошибок если будете этим пренебрегать.
Ответ дал:
0
Ну и как уже написал, лучше переделывайте и используйте всегда итераторы вместо индекса, это поможет вам избежать большенства ошибок с обращением к несуществующемму пространству.
Ответ дал:
0
во-первых: всё, что вы написали - я прекрасно знаю. во-вторых: цель моей конструкции - наглядно показать, а не сделать что-то сверх умное. кроме того, если бы я писал серьёзную программу, то написал бы нормальные итераторы и хорошо позаботился бы об алгоритме. в-третьих: если мне нужен итератор на последнем месте после работы цикла, то ++i -действительно хорошая вещь, но если у меня будет временная переменная для цикла, то i++ или ++i - уже дело вкуса.
Ответ дал:
0
ибо после работы цикла i "удалится". magic values/numbers - действительно ужасная вещь.
Ответ дал:
0
Не обязательно удаляется индекс физичски, просто вы выходите из его области видимости :)
Что на счёт итераторов то это для автора сабжа.
На счёт Magic Numbers и "цель моей конструкции - наглядно показать" так показывайте нормально, а не пишите "антипаттерны", пока что это рабочий код махающий флагом:
Привет! Я работаю, но писать как писали меня - не надо!
Что на счёт итераторов то это для автора сабжа.
На счёт Magic Numbers и "цель моей конструкции - наглядно показать" так показывайте нормально, а не пишите "антипаттерны", пока что это рабочий код махающий флагом:
Привет! Я работаю, но писать как писали меня - не надо!
Вас заинтересует
2 года назад
2 года назад
2 года назад
8 лет назад
9 лет назад