изменится?
если заменишь — то скомплируется, если не заменишь, то нет
Держи своё Г... std::tuple<size_t, int, int> FindSequenceOfOddValsOfMaxLength(const List *head) { if (head == NULL) { return -1; } int start = -1; int end = -1; std::stack< std::tuple<size_t, int, int> > sequence_of_max_length; List *t = head; for( int i = 0; t; t = t->next, ++i ) { if (start < 0 && t->x % 2 == 1) // start sequence { start = i; end = i + 1; } else if (start >= 0 && t->x % 2 == 1) // continue sequence { end = i + 1; } else if (start >= 0 && t->x % 2 != 1) { size_t len = end - start; auto max_sequence = !sequence_of_max_length.empty() ? sequence_of_max_length.top() : std::tuple<size_t, int, int>(0,-1,-1); if ( len > max_sequence.get<0>() ) { sequence_of_max_length.push( std::tuple<size_t, int, int>(len, start, end) ); } start = end = -1; } } if (start >= 0) { size_t len = end - start; auto max_sequence = !sequence_of_max_length.empty() ? sequence_of_max_length.top() : std::tuple<size_t, int, int>(0,-1,-1); if ( len > max_sequence.get<0>() ) { sequence_of_max_length.push( std::tuple<size_t, int, int>(len, start, end) ); } } return !sequence_of_max_length.empty() ? sequence_of_max_length.top() : std::tuple<size_t, int, int>(0,-1,-1); }
Я пока писал, понял, что на самом деле там стек не нужен, конечно, хватит одного tuple, но пока писал, думалось именно так. Так тоже сойдёт
Обсуждают сегодня