Как программным методом удалить одну из итераций цикла for?
Допустим есть for(int i = 0; i < 5; ++i) {}
Я предлагаю вводить пять новых слов. Человек на 3ий раз вводит слово ,которое уже есть в векторе. Я через continue продолжаю с ним работать, но цикл мы уже потеряли,а как сделать ,чтобы в таком случаи этот цикл не засчитывался или изменился уже на i <6;. PS: Это чистый пример для возможного понимания.
в твоем случае просто - делать i--, само собой, если условие пропуска содержит учет номера шага, то для этого завести дополнительный счетчик настоящих шагов
Если что под твою задачу лучше делать цикл while и считать количество 'новых слов' а не количество шагов, зачем тебе эти шаги
Решается проблема XY.
Тут в принципе не имеет смысла for, а нужен while(vector.size() < 5)
Шаманство с индексом цикла - плохая практика, она аукнется в новых стандартах, например.
в целом может полезно все это для понимания. но вообразим крайность - бесконечный ввод одного слова.. (вдруг у вас программный источник? ))
итог - бесконечный цикл ))
возможно это уже следующий уровень понимания, но рекомендую к осмыслению )))
Можно добавить ещё 1 вложенный цикл, чтобы человек повторно вводил слово, пока не введёт уникальное.
Это будет самый оптимальный вариант, как мне кажется.
не решение )).. а двойной (и более, контроль, возможен и в for)...
... сишный for силища... все прочие циклы - дань моде.. но легко реализуются на for )))
#, иногда лучше пренебречь богатыми возможностями ради читабельности.
Лучше написать чуть более объёмный, но более простой код, чем писать компактный, но сильно более сложный.
Так, как минимум, будет ниже шанс допустить какую-нибудь ошибку.
Да и компилятору будет проще оптимизации навернуть.
Василий Банников, уже пора просить прощения... знаете когда воспылал к си синтаксису вообще, и for в частности?
... классическое копирование блока памяти на си знаете? )))
Василий Банников, .. это еще пришлось побадаться с мс спп )))
.. а так то - микроконтроллер .. mc60000 что ли... начало 2000го... а потом резко в шарповый проект )))
Василий Банников, и ели не врет память, на чистом си for (; (*x++ = *w++) ;); ибо выражение в скобках все равно несет значение.. ну может если так? for (; !(*x++ = *w++) ;); .. не помню.. и нет чистого си под рукой )))
.. хмм .. а первый вариант и на спп на ура )))
.. знаете какие были требования?.. я только одно запомнил - каждая функция должна умещаться на листе типа А4 (хотя у них другой, близкий формат)...
еще и о функциональщине - именно краткость, считается способом сокращения ошибок.. (но там своя цена.. думаю вы в курсе )))