![]() |
![]() |
![]() |
Los algoritmos de las STL son implementaciones parametrizadas de algoritmos a través de tipos de iteradores de forma que pueden ser utilizados por el mayor número posible de contenedores.
Esto quiere decir que los algoritmos de las STL son funciones patrón. Si un algoritmo debe recorrer un contenedor lo hará empleando sus iteradores, y estos iteradores serán los parámetros del patrón.
Veamos como se implementaría uno de estos algoritmos:
template <class InputIterator, class T>
InputIterator find(InputIterator first,
InputIterator last,
const T& value)
{
while (first != last && *first != value)
++first;
return first;
}
for_each()find()find_each()find_end()find_firts_of()adjacent_find()count()mismatch()equal()search()copy()swap()transform()replace()fill()generate()remove()unique()reverse()rotate()random_shuffle()partition()sort()stable_sort()partial_sort()nth_element()lower_bound()upper_bound()equal_range()binary_search()merge()includes()set_union()set_intersection()set_diference()set_symetryc_diference()push_heap()pop_heap()make_heap()sort_heap()accumulate()inner_product()partial_sum()adjacent_difference()min()max()min_element()max_element()lexicographical_compare()next_permutation()prev_permutation()