неділю, 15 березня 2009 р.

Класифікація алгоритмів STL

Класифікація алгоритмів:

Cуфікс _if - використовується при наявності двох схожих форм алгоритму з однаковою кількітю параметрів. Версія без суфіксу використовується при передачі значення, аверсія з суфіксом _if при передачі функції, або об'єкту функції. Якщо ж версія алгоритму відрізняється додатковим параметром - вона зберігає за собою попереднє ім'я, тобто вживається без суфіксу.

Cуфікс _сopy означає, що алгоритм не тільки обробляє елементи, а й копіює їх в інтервал, який приймає. Наприклав reverse() переставляє елементи в зворотньому порядку, а reverse_sopy() копіює елементи в інтервал в зворотньому напрямку.

Алгоритми поділяються на групи:

  • не модифікуючі: for_each, count, max/min_element, search, find
  • модифікуючі: for_each, copy, merge, fill, replace
  • алгоритми видалення: remove, remove_if, remove_copy_if, unique
  • алгоритми перестановки: reverse, rotate, random_shuffle, partition, stable_partition
  • алгоритми сортування: sort, stable_sort, partial_sort, partition, stable_partition, make_heap, push/pop_heap, sort_heap
  • алгоритми впорядкованих інтервалів: binary_search, lower/upper_bound, equal_range, merge, set_difference
  • числові алгоритми: accumulate, inner_product, adjacent_difference, partial_sum

Детальний опис алгоритмів можна знайти в книзі Nicolai M.Josuttis The C++ Standard, Chapter 9 Algorithms STL.

Немає коментарів:

Дописати коментар

Прихильники