1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Вопрос по алгоритму сортировки в С++

Тема в разделе "С и С++", создана пользователем Guest, 27 дек 2003.

Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    Репутация:
    0
    то нибудь знает алгоритм сортировки который может “Для отдельных цехов и по предприятию в целом подсчитать средний процент”
     
  2. AlexGin

    AlexGin Гость

    Репутация:
    0
    При чем тут алгоритм сортировки ?
     
  3. Guest

    Guest Гость

    Репутация:
    0
    Код:
    struct Data
    {
    Dept dept; // идентификатор цеха
    Something something; // всякая ботва
    double rate; // тот самый процент
    };
    
    container<Data> cont; // какой-то контейнер (вектор, список, всё что хошь)
    
    // среднее по всем
    struct add_rate
    {
    double operator()(double sum, const Data& data) const
    { return sum + data.rate; }
    };
    
    double avg = cont.empty() ? 0 : accumulate(cont.begin(), cont.end(), 0, add_rate()) / cont.size();
    
    // среднее по каждому
    struct statistics
    {
    double sum; int count;
    statistics() : sum(0), count(0) {}
    void operator +=(double rate) { sum += rate; ++count; }
    double avg() const { return count ? sum/count : 0; }
    };
    
    map<Dept, statistics> rates;
    
    struct add_rates
    {
    map<Dept, statistics> &rates;
    add_rates(map<Dept, statistics>& r) : rates(r) {}
    void operator()(const Data& data) const
    { rates[data.dept] += data.rate; }
    };
    
    for_each(cont.begin(), cont.end(), add_rates(rates));
     
  4. Гость

    Репутация:
    0
    ^-- это был я
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей