Espaços nominais
Variantes
Acções

Algoritmos do C++

Da cppreference.com
< cpp

As funções abaixo estão definidas no cabeçalho <algorithm>

Índice

[editar] Operações que não modificam a sequência
for_each aplica uma função à uma sequência de elementos
count retorna o número de vezes que um certo elemento aparece na sequência
count_if retorna o número de elementos que satisfazem uma certa condição
mismatch encontra a primeira posição onde duas sequências diferem
equal determina se duas sequências de elementos são iguais
find encontra a posição de um item em uma certa sequência
find_if encontra o primeiro elemento que satisfaz uma certa condição
find_end encontra a última ocorrência de uma subsequência de elementos em uma certa sequência
find_first_of busca pela primeira ocorrência de qualquer elemento de um conjunto em uma certa sequência
adjacent_find encontra dois itens adjacentes que sejam idênticos (ou que satisfaçam uma outra condição)
search procurar por uma sequência de elementos
search_n procura um elemento que se repita N vezes consecutivas em uma certa sequência
[editar] Operações que modificam a sequência
copy copia uma sequência de elementos para algum lugar
copy_backward copia uma sequência de elementos de trás para a frente
fill atribui um valor aos elementos de uma certa sequência
fill_n atribui um valor a parte dos elementos de uma certa sequência
transform aplica uma função aos elementos de uma certa sequência
generate atribui o valor retornado por uma função aos elementos de uma certa sequência
generate_n atribui o valor retornado por uma função a N elementos de uma certa sequência
remove remove elementos iguais a um certo valor
remove_if remove todos os elementos que satisfazem uma certa condição
remove_copy copia uma sequência de elementos ignorando aqueles que sejam iguais a um certo valor
remove_copy_if cria uma cópia de uma certa sequência, removendo os elementos que satisfazem uma certa condição
replace substitui todas as ocorrências de um elemento numa certa sequência por outro
replace_if substitui os elementos que satisfazem uma certa condição
replace_copy copia uma sequência, substituindo certos elementos por outros
replace_copy_if copia uma sequência de elementos, substituindo aqueles que satisfazem uma certa condição
swap troca os valores de dois objetos
swap_ranges troca duas sequências de elementos
iter_swap troca os elementos apontados por dois iteradores
partition separa uma sequência de elementos em dois grupos
stable_partition separa os elementos de uma sequência em dois grupos, mantendo a ordem relative entre eles
reverse inverte a ordem dos elementos de uma sequência
reverse_copy cria uma cópia de uma sequencia com os elementos na ordem inversa
rotate move os elementos de uma sequência um certo de número de posição para a esquerda
rotate_copy copia e move os elementos de uma certa sequência
random_shuffle reordena de forma aleatória os elementos de uma certa sequência
unique remove elementos consecutivos e duplicados em uma sequência de elementos
unique_copy cria uma cópia que não contém elementos consecutivos e duplicados a partir de uma sequência
[editar] Operações de ordenação (em sequências ordenadas)
sort ordena uma sequência em ordem crescente
partial_sort ordena os N primeiros elementos de uma sequência
partial_sort_copy copia e ordena parte dos elementos de uma sequência
stable_sort ordena os elementos de uma sequência, mantendo a ordem original entre elementos iguais
nth_element insere um elemento em sua posição correta na sequência ordenada de forma que nenhum elemento a sua esquerda seja maior que qualquer elemento a sua direita
[editar] Operações de busca binária (em sequências ordenadas)
lower_bound procura a primeira posição onde um elemento pode ser inserido mantendo a ordenação da sequência
upper_bound procura a última posição onde um elemento pode ser inserido mantendo a ordenação da sequência
binary_search determina se uma sequência contém um certo elemento
equal_range procura por uma sequência de elementos que seja igual a um certo elemento
[editar] Operações de conjuntos (em sequências ordenadas)
merge junta duas sequências ordenadas
inplace_merge junta duas subsequências ordenadas alterando a sequência original
includes determina se um conjunto é um subconjunto de um certo conjunto
set_difference calcula a diferença entre dois conjuntos
set_intersection calcula a intersecção entre dois conjuntos
set_symmetric_difference calcula a diferença simétrica entre dois conjuntos
set_union calcula a união de dois conjuntos
[editar] Operaçõs de heap
is_heap Determina se uma certa sequência é um heap
make_heap cria um heap a partir de uma sequência de elementos
push_heap adiciona um elemento a um heap
pop_heap remove o maior elemento de um heap
sort_heap transforma um heap em uma sequência ordenada de elementos
[editar] Operações de mínimo/máximo
max retorna o maior de dois elementos
max_element retorna o maior elemento de uma sequência
min retorna o menor de dois elementos
min_element retorna o menor elemento de uma sequência
lexicographical_compare Determina se uma sequência é lexicograficamente menor que outra
next_permutation todo
prev_permutation todo
[editar] Operações numéricas

As funções abaixo estão definidas no cabeçalho <numeric>

accumulate calcula o somatório de uma sequência de elementos
inner_product calcula o produto interno de duas sequências de elementos
adjacent_difference calcula as diferenças entre elementos adjacentes em uma sequência
partial_sum todo

[editar] Biblioteca C

As funções abaixo estão definidas no cabeçalho <cstdlib>

qsort ordena uma sequência de elementos de tipo indefinido
bsearch procura um elemento de tipo indefinido em um vetor