Основи програмування на С ++ для початківців

Сортування структур. СТЛ Частина 13

Показання в попередній частині різноманітні сортування - Гнучкий і красивий механізм на всі випадки життя. Ось тільки на практиці сортувати в чистому вигляді послідовності майже ніколи не доводиться. Це все з області навчально-показових завдань.

На практиці куди частіше стоїть завдання сортувати досить об'ємні структури даних (об'ємні навіть не за своїм розміром, а по числу своїх полів). І сортувати (або перевпорядковувати) їх має бути за значеннями самих різних полів цих самих структур. Але і тут на допомогу приходять STL алгоритми, особливо при використанні їх разом з функторами.

Подивимося типову модельну задачу, яку ми вже бачили раніше - опис навчальної групи або факультету:

Програма запитує номер поля дані, за яким вестиметься сортування (насправді - порівняння). Якщо цей номер вводиться, як позитивне число, то сортування по цьому полю йде в порядку зростання. Якщо ж номер вводиться зі знаком мінус - то порядок сортування змінюється на зворотний:

сортування структур з ++, stl для початківцівсортування структур з ++, stl для початківців

Зверніть увагу, що алгоритму сортування абсолютно байдуже що сортувати: якщо це числові дані, то за величиною, а якщо малі, то в лексографіческом порядку.

3 думки про "Сортування структур. СТЛ Частина 13

  1. А зможете аналогічно розтлумачити функцію find(…)?
    Намагався самостійно написати пошук по вектору для структури типу

    по id-елементу (при тому елементів з однаковим id бути не може).
    Пробував писав функтор типу

    і посилати його з вже ініціалізірованим id (створював об'єкт функтора з параметрами і кидав вже його) - Нахапав купку помилок на кшталт “функції find(★ аргументи ★) не існує”.
    Пробував аналогічно з лямбда - все те ж саме…
    Підозрюю себе в географічно неправильному розташуванні рук

Залишити коментар до Olej Скасувати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *