4, 5};
for (size_t i = 0; i < std::size(arr); ++i) {
std::cout << arr[i] << (i != std::size(arr) - 1 ? ", " : "");
}
return 0;
}
Фи, лишнее условие на каждую итерацию
На i с нулем удобнее сравнивать
Надеюсь дожить до момента, когда при измерении выяснится, что программа тормозит именно из-за этого
Не очень понял тебя
Я кстати не уверен а нету ли где-то в глубине ваших оберток точно такого же условия
i != std::size(arr) - 1 - более громоздко нежели (i ? "," : "")
Не понял, я же таким образом хочу найти последний элемент, а не первый, как мне поможет сравнение с 0?
for(...) { если не первый элемент, вывести запятую вывести элемент }
Так а зачем? Тогда неправильно отображаться будет
Суть в том, чтобы для последнего элемента не вывести ", " в конце
что за хрень, ребят? for(size_t i = 0; i < n; ++i) { if(i) std::cout << ", "; std::cout << a[i]; }
Я понял не сразу но понял
Или можно вообще без ифов, чтобы в них точно никто не запутался: std::string delimiter; for(auto& e: a) { std::cout << delimiter << e; delimiter = ", "; }
И приз на самое элегантное решение выигрывает Офи
Вообще, оно не моё, точно у кого-то видел, вероятнее всего у @h4cktill
а оно cоптимизируется, или будет каждый раз присваивание вызывать?
Будет, конечно. Другое дело, что без бенчмарков я не возьмусь угадывать, что будет быстрее – сравнить или присвоить
Лайк, подписка, колокольчик
Обсуждают сегодня