Форум программистов, компьютерный форум CyberForum.ru

Объектно ориентированное программирование. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ что обозначает? расшифруйте пожалуйста http://www.cyberforum.ru/cpp-beginners/thread303903.html
//////////////////////////////////////////////////////////////////////////////// fill<float>(A, A+n, 0); std::copy(A, A+n, std::ostream_iterator<float>(std::cout, " ")) //////////////////////////////////////////////////////////////////////////////// template<class T> void fill(T *A1, T *A2, const T& v)
C++ Нужно записать результаты программы в два файла, а компилятор ругается Нужно записать результаты программы в два файла, а компилятор ругается.. Что не так? #include "stdafx.h" #include <iostream> #include <stdio.h> #include <math.h> #include <cstdlib> #include <fstream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread303886.html
C++ Raiden(шифр)
Здравствуйте, уважаемые!) Нужно переделать шифр Raiden на си (без плюсов). Имеется этот шифр на си++(вики) void raiden_encode(const u32 key, const u32 data, u32 result) { u32 b0 = data, b1 = data, k = {key,key,key,key}, sk; int i;
C++ Циклическая очередь
Создать класс типа - циклическая очередь. Функции-члены получают элемент и вставляют элемент.
C++ Стыдно даже спрашивать http://www.cyberforum.ru/cpp-beginners/thread303865.html
Весьма простое задание и уже заступорился...ищу в двумерном массиве минимальный элемент каждой строки #include <iostream.h> #include <math.h> #include <conio.h> const int m=6,n=6; float A={{15,4.5,6.7,3.5,2.8,3.6}, {4.5,15,5.1,4.5,6.3,7}, {6.7,5.1,15,1.8,3.1,8.2}, {3.5,4.5,1.8,15,6.5,7.3},
C++ Тест скорости интернета Добрый день. Есть приложение написанное на с++(std, winapi). Надо добавить возможность тестирования скорости интенета. С сетью ни разу не работал. Подскажите, пожалуйста, в какую сторону копать? подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
29.05.2011, 16:07     Объектно ориентированное программирование.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <string>
#include <stack>
#include <deque>
#include <numeric>
#include <vector>
#include <functional>
#include <algorithm>
 
namespace my
{
        template<class T, class container = std::deque<T> >
        class stack:public std::stack<T, container>
        {
        public:
                typedef typename container::iterator iterator;
                typedef typename container::const_iterator const_iterator;
 
                iterator begin() {return c.begin();}
                iterator end() {return c.end();}
                const_iterator begin() const {return c.begin();}
                const_iterator end() const {return c.end();}
        };
}
 
class Product
{
public:
        Product(const std::string& title_,
                        double en_price_,
                        int numb_):title(title_), en_price(en_price_), numb(numb_)
        {
        }
        const std::string& getTitle() const {return title;}
        double getEnPrice() const {return en_price;}
        int getNumb() const {return numb;}
        void setTitle(const std::string& title_) {title = title_;}
        void setEnPrice(double en_price_) {en_price = en_price_;}
        void setNumb(int numb_) {numb = numb_;}
private:
        std::string title;
        double en_price;
        int numb;
};
 
std::ostream& operator <<(std::ostream& os, const Product& obj)
{
     os << "Title: " << obj.getTitle() << '\n'
         << "EnPrice: " << obj.getEnPrice() << '\n'
         << "Numb: " << obj.getNumb() << '\n';
}
 
double operator +(double en_pr, Product prod)
{
        return en_pr + prod.getEnPrice();
}
 
struct EnPricesCompare:public std::binary_function<Product, Product, bool>
{
        result_type operator () (const first_argument_type& first, const second_argument_type& second)
        {
                return first.getEnPrice() < second.getEnPrice();
        }
};
 
template<class StackType>
double enPriceSum(const StackType& stck)
{
        return std::accumulate(stck.begin(), stck.end(), 0.0);
}
 
template<class StackType>
double enPriceMiddle(const StackType& stck)
{
        return enPriceSum(stck) / stck.size();
}
 
template<class StackType>
Product getMax(const StackType& stck)
{
        return *std::max_element(stck.begin(), stck.end(), EnPricesCompare());
}
 
struct EnPriceCompare:public std::unary_function<Product, bool>
{
public:
        EnPriceCompare(double m_p):middle_price(m_p)
        {
        }
        result_type operator () (const argument_type& pr)
        {
                return pr.getEnPrice() < middle_price;
        }
private:
        double middle_price;
};
 
namespace my
{
        template<class InIt, class OutIt, class Pr1>
        inline OutIt copy_if(InIt First, InIt Last, OutIt Dest, Pr1 Pred)
        {
                while(First != Last)
                {
                        if(Pred(*First))
                        {
                                *Dest=*First;
                                ++Dest;
                        }
                        ++First;
                }
                return Dest;
        }
};
 
template<class StackType, class Cont, class Pred>
void copyProducts(const StackType& stck, Cont& cont, Pred pred)
{
        my::copy_if(stck.begin(), stck.end(), std::back_inserter(cont), pred);
}
 
int main()
{
        my::stack<Product> prod_stack;
        prod_stack.push(Product("1", 10, 5));
        prod_stack.push(Product("2", 5, 6));
        prod_stack.push(Product("3", 7, 10));
        Product prod = getMax(prod_stack);
        std::cout << "Product with max energ price\n" << prod << '\n';
        std::cout << "Sum is: " << enPriceSum(prod_stack) << '\n';
        double middle = enPriceMiddle(prod_stack);
        std::cout << "Middle is: " << middle << '\n';
        std::vector<Product> prod_vec;
        copyProducts(prod_stack, prod_vec, EnPriceCompare(middle));
        std::cout << "Products with energ price less than middle\n";
        std::copy(prod_vec.begin(), prod_vec.end(), std::ostream_iterator<Product>(std::cout, "\n"));
}
 
Текущее время: 08:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru