Знайти амплітуду значень у масиві. (Написати шаблонну функцію). Амплітуда - різниця найбліьшого й наменшого значень.c++
Ответы
Ось приклад шаблонної функції для пошуку амплітуди значень у масиві:
c++
Copy code
#include <iostream>
template <typename T, size_t N>
T getAmplitude(T (&arr)[N]) {
T maxVal = arr[0];
T minVal = arr[0];
for (size_t i = 0; i < N; ++i) {
if (arr[i] > maxVal) {
maxVal = arr[i];
}
if (arr[i] < minVal) {
minVal = arr[i];
}
}
return maxVal - minVal;
}
int main() {
int arr1[] = {1, 5, 10, 3, -2, 8};
double arr2[] = {3.14, 2.71, 0.0, -1.0, 5.5};
std::cout << "Amplitude of arr1: " << getAmplitude(arr1) << std::endl;
std::cout << "Amplitude of arr2: " << getAmplitude(arr2) << std::endl;
return 0;
}
У цьому прикладі функція findAmplitude приймає масив будь-якого типу даних та знаходить максимальне та мінімальне значення у масиві, після чого повертає різницю між цими значеннями (тобто амплітуду). Зверніть увагу, що масив передається у функцію за допомогою посилання на масив (тобто T (&arr)[N]), що дозволяє функції працювати з масивом без його копіювання. Також варто зауважити, що для знаходження максимального та мінімального значень масиву використовуються функції std::max_element та std::min_element з бібліотеки <algorithm>.