Namespace
Varianti

Algoritmi C++

Da cppreference.com.
< cpp

Le seguenti funzioni sono definite <algorithm> and sono parte del namespace std.

Indice

[modifica] Operazioni sequenziali invarianti
for_each applica una funzione ad una lista di elementi
count ritrona il numero di elementi che hanno un determinato valore
count_if ritorna il numero di elementi per cui un certo predicato è vero
mismatch trova la prima posizione dove due range differiscono
equal determina se due insiemi di elementi sono lo stesso
find trova un valore in un dato intervallo
find_if trova il primo elemento per cui un dato predicato è soddisfatto
find_end trova l'ultima sequenza di elementi in un certo intervallo
find_first_of cerca un elemento in un insieme dato
adjacent_find cerca due elementi adiacenti che hanno una determinata relazione tra loro
search cerca un intervallo di elementi
search_n cerca N copie consecutive di un elemento in un dato intervallo
[modifica] Operazioni sequenziali modificanti
copy copia un certo intervallo di intervalli in una nuova posizione
copy_backward copia un intervallo di elementi in ordine inverso
fill assegna ad un intervallo di elementi un certo valore
fill_n assegna un valore ad un certo numero di elementi
transform applica una trasformazione ad una serie di elementi
generate salva il risultato di una funzione in un intervallo
generate_n salva il risultato dell'applicazione di una funzione invocata N volte
remove rimuovi gli elementi uguali ad un certo valore
remove_if rimuovi gli elementi per i quali un predicato è vero
remove_copy copia un intervallo di elementi tralasciando quelli che hanno un determinato valore
remove_copy_if crea una copia di un range di elementi per i quali un predicato è vero
replace sostituisci ogni elemento avente un certo valore con un nuovo valore
replace_if cambia i valori degli elementi per i quali un predica è vero
replace_copy copia un intervallo, sostituendo certi elementi con nuovi
replace_copy_if copia un intervallo di elementi, sostituendo quelli per i quali un certo predicato è vero
swap scambia i valori di due oggetti
swap_ranges scambia due range di oggetti
iter_swap scambia gli elementi puntati da due iteratori
partition scambia un range di elementi in due gruppi
stable_partition dividi gli elementi in due gruppi preservando il loro ordine relativo
reverse inverti gli elementi di un certo range
reverse_copy crea una copia di un range in ordine invertito
rotate sposta a sinistra gli elementi di un dato range per certo numero di posizioni
rotate_copy copia e ruota un range di elementi
random_shuffle riordina a caso gli elementi di un certo intervallo
unique rimuovi gli elementi duplicati consecutivi all'intervallo di un range
unique_copy crea una copia di un certo range che non contiene duplicati consecutivi
[modifica] Operazioni di ordinamento
sort ordina un range in ordine ascendente
partial_sort ordina i primi N elementi di un range
partial_sort_copy copia e ordina parzialmente un intervallo di elementi
stable_sort ordina un intervallo di elementi allo stesso tempo preservando l'ordine tra elementi uguali
nth_element mett un elemento nella sua locazione ordinata e fa in modo che nessun elemento alla sinistra sia più grande degli elementi alla destra
[modifica] Operazioni di ricerca binaria (sui range ordinati)
lower_bound cerca il primo posto dove un elemento può essere inserito preservando l'ordine
upper_bound cerca l'ultimo posto dove un valore può essere inserito preservando l'ordine
binary_search determina se un elemento esiste in un certo range
equal_range cerca un range di elementi che sono uguali ad un certo elemento
[modifica] Operazioni su insiemi ordinati
merge unisci due range ordinati
inplace_merge unisci due range ordinati 'in-place'
includes ritorna vero se un insieme è il sottoinsieme di un altro
set_difference calcola la differenza tra due insiemi
set_intersection calcola l'intersezione tra due insiemi
set_symmetric_difference calcola la differenza simmetrica tra due insiemi
set_union calcola l'unione di due set
[modifica] Heap operations
is_heap ritorna vero se un dato range è nello heap
make_heap crea uno heap a partire da un intervallo di elementi
push_heap aggiungi un elemento ad uno heap
pop_heap rimuove l'elemento più grande di uno heap
sort_heap trasforma lo heap in un intervallo di elementi ordinati
[modifica] Operazioni sui massimi e minimi di un insieme
max ritorna il più grande di due elementi
max_element ritorna l'elemento più grande in un intervallo
min ritorna il minore di due elementi
min_element ritorna il più piccolo elemento in un range
lexicographical_compare ritorna vero se un range è minore di un altro in senso lessicografico
next_permutation genera la successiva permutazione lessicograficamente maggiore di un range di elementi
prev_permutation genera la successiva permutazione lessicograficamente minore di un range di elementi
[modifica] Operazioni numeriche

The following functions are defined in <numeric>, and are part of the std namespace. Le funzioni che seguono sono definite in <numeric> e sono parte del namespace std

accumulate somma un inetervallo di elementi
inner_product calcola il prodotto interno di due intervalli di elementi
adjacent_difference calcola la differenza tra elementi adiacenti in un range
partial_sum calcola la somma parziale di un range di elementi