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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.07.2008, 19:01   #1
Mumriksnus
Новичок
Джуниор
 
Регистрация: 01.07.2008
Сообщений: 1
По умолчанию [C++]STL

Уважаемые программисты, помогите пожалуйста с решением такой вот задачи по С++.
С помощью STL

Тип контейнера - Дек
Задача для первого контейнера - Среднее арифметическое
Условие выбора элементов -Некратные 3
Задача для второго контейнера - Максимум


Желателен графический интерфейс. но можно и в консольном варианте.
Сдавать завтра, или уже совсем крайний срок четверг.
ICQ 487-879-948
Заранее благодарю!

У меня получилось вот что, но выдаёт ошибки

Код:
#include <numeric>
#include <algorithm>
#include <deque>
#include <stdexcept>
#include <iostream>
template<typename _InIt, typename _Ty, typename _Pred1>
inline _Ty accumulate_if(_InIt _First, _InIt _Last, _Ty _Val, _Pred1 _Func)
{
    for ( ; _First != _Last; ++_First)
        if (_Func(*_First))
            _Val = _Val + *_First;
    return (_Val);
}
template <typename T>
struct modulo : std::unary_function<T, bool>
{
    modulo(const int n) : n_(n) {}
    bool operator()(const T v) const
    { return v % n_ == 0; }
    const int n_;
};
int main()
{
    std::deque<int> v;
    // заполнить контейнер
    modulo<int> md(3);
    size_t cnt = std::count_if(v.begin(), v.end(), std::not1(md));
    if (cnt == 0)
        throw std::runtime_error("Отсутствуют необходимые элементы");
    int avg = accumulate_if(v.begin(), v.end(), 0, std::not1(md)) / cnt;
    std::cout << avg << std::endl;
    std::cin.get();
    return (0);
}

Ошибки:
Build
[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI .LIB|crtlvcl
[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI .LIB|crtlvcl

Где косяк, и как его исправить?

P.S. Тег коде <CODE>

Последний раз редактировалось merax; 02.07.2008 в 21:04.
Mumriksnus вне форума
Старый 02.07.2008, 20:43   #2
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от Mumriksnus Посмотреть сообщение
У меня получилось вот что, но выдаёт ошибки
Начнем с того, что не у вас – это не ваш код, не вы его написали. Его написал Rififi с винграда, ссылка, подтверждающая мои слова.

Желание помогать после этого у меня нет, но дабы быть справедливым по отношению к Rififi: код не содержит синтаксических ошибок, он полностью соответствует стандарту. Разбирайтесь со своим компилятором / кривизной рук.
filosof_x86 вне форума
Закрытая тема


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