Какова более простая/более читаемая альтернатива этой структуре кода? [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
 Какова более простая/более читаемая альтернатива этой структуре кода? [закрыто]

Сообщение Anonymous »

В последнее время много раз упражнения на C++ требовали от меня выполнения операций, зависящих от отношений между элементами в векторе. Например, выполнить x только в том случае, если следующий элемент в векторе больше предыдущего, а в противном случае выполнить y.
Я часто решаю такие задачи. проблемы с общей структурой кода:

Код: Выделить всё

void foo()
{
std::vector v;
for (size_t i = 0; i < v.size(); ++i)
{
if (i < v.size() - 1)
{
if (v[i + 1] > v[i])    // some sort of condition
{
// execute compound statement x
}
else
{
// execute compound statement y
}
}
else
{
// execute compound statement y
}
}
}
Но часто становится сложно читать, когда составные операторы x и y становятся большими. Частично потому, что мне часто приходится создавать функцию, содержащую составной оператор y, чтобы избежать необходимости дважды копировать весь ее код.

Какова более читабельная альтернатива этой структуре?

Подробнее здесь: https://stackoverflow.com/questions/785 ... -structure

Вернуться в «C++»