Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2009, 20:27   #1
R@Ziel
Пользователь
 
Регистрация: 13.11.2009
Сообщений: 14
По умолчанию Упрощение кода

В заданной последовательности чисел длиной n (n≤100) определить длину самой большой упорядоченной по возрастанию подпоследовательности соседних элементов.
Вот собствено код но проблема в том что я его понять не могу мы в университете не проходили #include <numeric> #include <algorithm> #include <limits> #include <iterator> если кто может у простить его не используя эти библиотечные файлы всякие там typename std::iterator_traits<_InIt>:iffer ence_type пример и т.д
Код:
#include <vector>
#include <numeric>
#include <algorithm>
#include <limits>
#include <iostream>
#include <iterator>


/*
    В заданной последовательности чисел длиной n (n≤100)
    определить длину самой большой упорядоченной по возрастанию
    подпоследовательности соседних элементов.
*/

template <typename _InIt>
typename std::iterator_traits<_InIt>::difference_type
sequence_length(_InIt begin, _InIt end)
{
    typedef typename std::iterator_traits<_InIt>::value_type value_type;
    
    typename std::iterator_traits<_InIt>::difference_type count = 0;
    for ( ; begin != end; ++begin)
        for (_InIt it = begin + 1; it != end; ++it)
        {
            // Пытаемся найти возрастающую последовательность
            if (std::adjacent_find(begin, it + 1, std::greater<value_type>()) != it + 1)
                break;
            
            // Последовательность найдена, обновим данные о длине
            count = std::max(count, std::distance(begin, it + 1));
        }
    return (count);
}
R@Ziel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощение дроби k1r1ch Общие вопросы Delphi 2 10.10.2009 16:16
Упрощение работы со строками RNT Общие вопросы C/C++ 4 04.08.2009 13:08
Упрощение edit (delphi) grom333 Помощь студентам 1 04.04.2009 13:49
Упрощение кода программы за счет использования процедур uraura Общие вопросы Delphi 10 26.03.2009 21:54
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51