Показання в попередній частині різноманітні сортування - Гнучкий і красивий механізм на всі випадки життя. Ось тільки на практиці сортувати в чистому вигляді послідовності майже ніколи не доводиться. Це все з області навчально-показових завдань.
На практиці куди частіше стоїть завдання сортувати досить об'ємні структури даних (об'ємні навіть не за своїм розміром, а по числу своїх полів). І сортувати (або перевпорядковувати) їх має бути за значеннями самих різних полів цих самих структур. Але і тут на допомогу приходять STL алгоритми, особливо при використанні їх разом з функторами.
Подивимося типову модельну задачу, яку ми вже бачили раніше - опис навчальної групи або факультету:
Програма запитує номер поля дані, за яким вестиметься сортування (насправді - порівняння). Якщо цей номер вводиться, як позитивне число, то сортування по цьому полю йде в порядку зростання. Якщо ж номер вводиться зі знаком мінус - то порядок сортування змінюється на зворотний:
Зверніть увагу, що алгоритму сортування абсолютно байдуже що сортувати: якщо це числові дані, то за величиною, а якщо малі, то в лексографіческом порядку.
А зможете аналогічно розтлумачити функцію find(…)?
Намагався самостійно написати пошук по вектору для структури типу
по id-елементу (при тому елементів з однаковим id бути не може).
Пробував писав функтор типу
і посилати його з вже ініціалізірованим id (створював об'єкт функтора з параметрами і кидав вже його) - Нахапав купку помилок на кшталт “функції find(★ аргументи ★) не існує”.
Пробував аналогічно з лямбда - все те ж саме…
Підозрюю себе в географічно неправильному розташуванні рук
Можу розібратися і розтлумачити ;-).
Тільки це досить докладно, і тут редактор коментарів не дає змоги.
звертайтеся сюди: http://rus-linux.net/forum/viewforum.php?f=31