• С++ Для кожної шаблонної функції навести приклад роботи з такими типами: int, double, char; 1. Опишіть шаблон функцію для обміном значень між двома змінними. 2. Опишіть шаблон функції сортування вставкою. 3. Опишіть шаблон функції сортування вибором. 4. Опишіть шаблон функції сортування бульбашкою. 5. Опишіть шаблон функції знаходження елемента в неупорядкованому масиві. 6. Опишіть шаблон функції знаходження елемента в упорядкованому масиві. 7. Опишіть шаблону функцію заміни елемента масиву на інший елемент. 8. Опишіть шаблону функцію інверсії масиву елементів.

Ответы 1

  • Ответ:

    Объяснение:

    Шаблонная функция для обмена значений между двумя переменными:

    css

    Copy code

    template<typename T>

    void swap(T& a, T& b) {

       T temp = a;

       a = b;

       b = temp;

    }

    Пример работы:

    arduino

    Copy code

    int x = 5, y = 10;

    swap(x, y);

    // x = 10, y = 5

    double a = 3.14, b = 2.71;

    swap(a, b);

    // a = 2.71, b = 3.14

    char c1 = 'a', c2 = 'b';

    swap(c1, c2);

    // c1 = 'b', c2 = 'a'

    Шаблонная функция для сортировки вставкой:

    css

    Copy code

    template<typename T>

    void insertionSort(T arr[], int n) {

       int i, j;

       T key;

       for (i = 1; i < n; i++) {

           key = arr[i];

           j = i - 1;

           while (j >= 0 && arr[j] > key) {

               arr[j + 1] = arr[j];

               j = j - 1;

           }

           arr[j + 1] = key;

       }

    }

    Пример работы:

    scss

    Copy code

    int arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };

    int n1 = sizeof(arr1) / sizeof(arr1[0]);

    insertionSort(arr1, n1);

    // arr1 = { 1, 1, 2, 3, 3, 4, 5, 5, 6, 9 }

    double arr2[] = { 3.14, 2.71, 1.41, 1.73, 0.69 };

    int n2 = sizeof(arr2) / sizeof(arr2[0]);

    insertionSort(arr2, n2);

    // arr2 = { 0.69, 1.41, 1.73, 2.71, 3.14 }

    char arr3[] = { 'c', 'o', 'd', 'e', 'r' };

    int n3 = sizeof(arr3) / sizeof(arr3[0]);

    insertionSort(arr3, n3);

    // arr3 = { 'c', 'd', 'e', 'o', 'r' }

    Шаблонная функция для сортировки выбором:

    css

    Copy code

    template<typename T>

    void selectionSort(T arr[], int n) {

       int i, j, min_idx;

       for (i = 0; i < n - 1; i++) {

           min_idx = i;

           for (j = i + 1; j < n; j++)

               if (arr[j] < arr[min_idx])

                   min_idx = j;

           swap(arr[min_idx], arr[i]);

       }

    }

    Пример работы:

    scss

    Copy code

    int arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };

    int n1 = sizeof(arr1) / sizeof(arr1[0]);

    selectionSort(arr1, n1);

    // arr1 = { 1, 1, 2, 3, 3, 4, 5, 5, 6, 9 }

    double arr2[] =

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years