Re[35]: Они сделали дерьмо опять
От: Kluev  
Дата: 09.07.20 18:09
Оценка:
Здравствуйте, Patalog, Вы писали:++

P>Здравствуйте, Kluev, Вы писали:


P>[]


K>>Если вам не понятен этот код позвольте я первый кину в вас камень


P>Практически любой код рано или поздно становиться понятен, вопрос лишь в том, сколько времени над ним медитировать.


P>И да, основное здесь

P>

P>В алгоритме, в котором нужно "перебрать все элементы кроме первого и последнего" всегда будет отдельная ветка логики для пустого массива (скорее даже size() < 3), иначе он будет ломаться пусть не на этом конкретном цикле, а где-то еще. А это "всегда будет корректно работать" — тупое заметание мусора под коврик.


"Всегда будет" — это громкие, но пустые заявления. Вот к примеру простой жизненный пример: итерация пар соседних элементов в массиве для вычисления длинны полилинии

    double len = 0;
    for (int i = 0; i < points.size() - 1; i++)
        len += distance(point[i], point[i + 1]);
    return len;


Один универсальный цикл на все случаи жизни. Никакие дополнительные ветки не нужны. В std::С++ такое естественно работать не будет, std-программист либо наступит на грабли, либо будет вынужден погрузиться в микро-менеджмент и "перебрасывать слагаемые"

for (int i = 1; i < points.size(); i++)


На все это тратятся ненужные временные и умственные ресурсы. Особенно смешно выглядят упражнения некоторых товарищей, которые найдя в языке костыль предназначенный для затыкания дыры, устраивают вокруг него пируэты считая это высшим пилотажем программирования.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.