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

Шаблоны функций. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа на С http://www.cyberforum.ru/cpp-beginners/thread394096.html
Помогите написать программу на С
C++ посоветуйте книгу 300-350 страниц уровень выше чем хеллоу ворлд уделяется внимание классам раскрыты все операторы http://www.cyberforum.ru/cpp-beginners/thread394088.html
Не могу написать задачу по массивам! C++
Мне нужно написать следующую программу на Си: 4. В одномерном массиве, состоящем из n вещественных элементов, вычислить: • количество положительных элементов массива; • сумму элементов массива,...
C++ Функция-шаблон С++
Создать функцию шаблон с двумя параметрами: массив элементов произвольного типа , длина массива. Функция шаблон должна зеркально отобразить значение элементов массива. Например: 'a', 'b', 'c', 'd',...
C++ Даны значения четырёх величин... http://www.cyberforum.ru/cpp-beginners/thread394049.html
Помогите, пожалуйста, решить задачу: Даны значения четырёх величин, выбрать наименьшее. Переменные a, b, c, d ввести с клавиатуры, значение большего присвоить F и вывести на экран. ...
C++ Функции. Рекурсия. Пишем в Microsoft Visual Studio -> Win32 Console Application -> C++. С помощью Рекурсий. Условие задачи : Перемещение N дисков может быть легко представлено в терминах перемещения только N-1... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
29.11.2011, 01:14
Цитата Сообщение от vetalmin Посмотреть сообщение
Чётные по модулю, значит то, что туда входят и отрицательные четные элементы...
по поводу шаблона функции тут его действительно нет...

Добавлено через 49 секунд
Кто нибудь может переделать, и сделать с шаблоном функции? Буду благодарен...
Уже существуют такие шаблонные функции в С++. Это стандартные алгоритмы std::accumulate и std::replace_if. Но вам, как я понимаю, нужно самостоятеьно написать подобные функции.
Во-первых, решение вашего задания лучше разбить на две функции, соответствующие указанным стандартным функциям.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template <typename T, int n>
T negative_average( const T ( &a )[n] )
{
   T sum = 0;
   int count = 0;
 
   for ( int i = 0; i < n; i++ )
   {
      if ( a[i] < 0 ) 
      {
         sum = sum + a[i];
         count++;
      }
   }
 
   return ( count ? sum / count : 0 );
}
C++
1
2
3
4
5
6
7
8
9
template <typename T, int n>
void replace_even( const T ( &a )[n], const T &value )
{
   for ( int i = 0; i < n; i++ )
   {
      if ( a[i] % 2 == 0 ) a[i] = value; 
   }
 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru