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

Произведение отрицательных элементов массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран из текста только предложения, состоящие из заданного количества слов http://www.cyberforum.ru/cpp-beginners/thread634674.html
Помогите решить задачку: Вывести на экран из текста только предложения, состоящие из заданного количества слов. Знаю, решение этой задачи есть в интернете, но там сложновато для моего понимания,...
C++ Посоветуйте литературу по С++ Всем привет. Я знаю что есть тема по выбору литературы для изучения С++ но тут немного другой вопрос. У меня есть уже книга "Джесс Либерти Освой C++ самостоятельно за 21 день" но мне сказали что... http://www.cyberforum.ru/cpp-beginners/thread634673.html
Строка с неограниченной длиной C++
Господа программеры! Объясните, пожалуйста, что такое char, char * и string. как можно получить строку с неограниченной длиной? //char text="";//tak ne poidet //char *text="";//tak toje ne...
C++ Автозапуск программы
Вот решил добавит калькулятор в автозагрузчик системы. Программа есть в списке автозагрузчика но не включается. Вот код #include<iostream> #include<windows.h> using namespace std; float a, b, c,...
C++ Извлечь числа http://www.cyberforum.ru/cpp-beginners/thread634628.html
Как можно извлечь из стоки xx/xx/xxxx числа? И как извлечь если день/месяц введены как например 01 или 1 и вообще чтобы 'x' являлось числом... #include <iostream> using namespace std; struct...
C++ Автозапуск программы Написал программу добавляющую себя в автозапуск. Программа в автозауске есть, но не включается автоматически в чем проблема? Вот код самой програмы: #include<windows.h> #include <iostream> using... подробнее

Показать сообщение отдельно
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
08.08.2012, 14:52
bullin2d,

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
#include <iostream>
#include <algorithm>
#include <vector>
 
template <typename T, std::size_t STATE>
struct MyLess : public std::binary_function <T, T, T> {
   T operator()(const T & lhs, const T & rhs) const {
      return lhs < rhs ? lhs : STATE;
   }
};
 
template <typename T, std::size_t STATE>
struct MyGreater : public std::binary_function <T, T, T> {
   T operator()(const T & lhs, const T & rhs) const {
      return lhs > rhs ? lhs : STATE;
   }
};
 
template <typename T,
         template <typename TYPE,
                   typename = std::allocator <TYPE>> class CONT>
T MultNegativeElements(const CONT <T> & cont) {
   T result =
      std::accumulate(
         cont.begin(),
         cont.end(),
         1,
         std::bind(
            std::multiplies <T>(),
            std::placeholders::_1,
            std::bind(
               MyLess <T, 1>(),
               std::placeholders::_2,
               0
            )
         )
      );
   return result;
}
 
template <typename T,
         template <typename TYPE,
                   typename = std::allocator <TYPE>> class CONT>
T SumElements(const CONT <T> & cont) {
   T result =
      std::accumulate(
         cont.begin(),
         std::max_element(
            cont.begin(),
            cont.end()
         ),
         0,
         std::bind(
            std::plus <T>(),
            std::placeholders::_1,
            std::bind(
               MyGreater <T, 0>(),
               std::placeholders::_2,
               0
            )
         )
      );
   return result;
}
 
template <typename T,
         template <typename TYPE,
                   typename = std::allocator <TYPE>> class CONT>
void TransformArray(CONT <T> & cont) {
   T max_element =
      *std::max_element(
            cont.begin(),
            cont.end()
       );
   std::partition(
      cont.begin(),
      cont.end(),
      std::bind(
         std::greater_equal <T>(),
         std::placeholders::_1,
         max_element - max_element / 100.0 * 20.0
      )
   );
}
 
int main() {
   std::vector <int> v_numbers = { -2, 13, -5, 1, 15, -3, 16, -7, 1, -3 };
   
   std::cout << MultNegativeElements <int, std::vector>(v_numbers) << std::endl;
   std::cout << SumElements <int, std::vector>(v_numbers) << std::endl;
   TransformArray <int, std::vector>(v_numbers);
   
   for (const auto & val : v_numbers) {
      std::cout << val << " ";
   }
}
http://liveworkspace.org/code/7a7b665e4f0de3eda2e62a6b55a5a9e8
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru