Algoritme (C++)
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 28. april 2015; checks kræver
16 redigeringer .
algorithm er en header-fil i standardbiblioteket for programmeringssproget C++ , som inkluderer et sæt funktioner til at udføre algoritmiske operationer på containere og andre sekvenser [1] .
Alle biblioteksfunktioner er placeret i std [2] navneområdet .
Kategorier af algoritmer
STL-standardbiblioteksalgoritmerne falder i følgende kategorier.
Beskrivelse af algoritmer
I tabellerne nedenfor, i kolonnen funktionsargumenter, finder du følgende symboler:
- første, sidste — slut- og startiteratorer (først1, sidste1, første2, sidste2 — slut- og startiteratorer i henholdsvis område 1 og 2)
- midten - en iterator , der peger på en bestemt position i beholderen
- funktion, prædikat, op og comp er funktionsobjekter
- værdi, ny, gammel og init er værdierne for de objekter, der er gemt i containerne
- a, b er nogle objekter af samme type
- iter - iterator
Ikke-ændrende sekventielle operationer
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
adjacent_find |
first, last |
Returnerer en iterator, der peger på det første par af identiske objekter
|
count |
first, last, value |
Returnerer antallet af elementer, hvis værdi ervalue
|
equal |
first1, last1, first2 |
Returnerer true, hvis alle matchende par af objekter fra to områder er ens
|
find |
first, last, value |
Returnerer en iterator, der peger på det første element, der er lig med værdivalue
|
for_each |
first, last, function |
Gælder functionfor alle objekter
|
mismatch |
first1, last1, first2 |
Returnerer det første ikke-matchende par af matchende objekter placeret i forskellige rækker af containerpositioner
|
search |
first1, last1, first2, last2 |
Tester, om det andet område er indeholdt i det første, returnerer kampens start, eller sidste1, hvis der ikke er noget match
|
Ændring af sekventielle operationer
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
fill |
first, last, value |
Tildeler en værdi til valuealle objekter i et område
|
generate |
first, last, gen |
Udfylder et område med værdier opnået ved successive funktionskaldgen
|
iter_swap |
iter1, iter2 |
Udveksler de objekter, der peges på af to iteratorer
|
remove |
first, last, value |
Fjerner fra området alle værdier lig medvalue
|
reverse |
first, last |
Vender en sekvens af objekter fra et område
|
replace |
first, last, old, new |
Erstatter alle objekter lig oldmed med objekter lig mednew
|
rotate |
first, last, middle |
Afspejler rækkefølgen af elementer
|
swap |
a, b |
Erstatter et objekt med et andet
|
swap_ranges |
first1, last1, first2 |
Udveksler matchende objekter i to områder
|
transform |
first1, last1, first2, operator |
Forvandler objekter i område 1 til nye objekter i område 2 ved at anvendeoperator
|
unique |
first, last |
Fjerner alle tilsvarende objekter i en sekvens undtagen det første
|
Sorteringsoperationer
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
nth_element |
first, nth,last |
Placerer det n'te objekt i den position, det ville have besat efter sortering af hele området
|
sort |
first, last |
Sorterer objekter i et område
|
stable_sort |
first, last |
Sorterer objekterne i et område. Hvis to objekter er lige store, ændres deres rækkefølge ikke.
|
Binære søgeoperationer
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
binary_search |
first, last, value |
Returnerer true, hvis værdien valueer inden for området
|
equal_range |
first, last, value |
Returnerer et par objekter, der repræsenterer de nedre og øvre grænser, mellem hvilke en værdi kan indsættes valueuden at ændre sorteringsrækkefølgen
|
lower_bound |
first, last, value |
Returnerer en iterator, der peger på den første position, hvor en værdi kan indsættes valueuden at ændre rækkefølgen af objekterne
|
upper_bound |
first, last, value |
Returnerer en iterator, der peger på den sidste position, hvor en værdi kan indsættes valueuden at ændre rækkefølgen af objekterne
|
Merge Operations
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
includes |
first1, last1, first2, last2 |
Returnerer true, hvis alle objekter i interval first2 last2 også er i interval first1 last1 (kun for sæt og multisæt arbejde)
|
merge |
first1, last1, first2, last2, first3 |
fletter sorteret område 1 og 2 til område 3
|
set_difference |
first1, last1, first2, last2, first3 |
Opretter en ordnet forskel af sæt givet område 1 og 2 (kun for sæt og multisæt)
|
set_intersection |
first1, last1, first2, last2, first3 |
Opretter et ordnet skæringspunkt mellem elementerne i område 1 og 2 (kun til arbejde med sæt og multisæt)
|
set_union |
first1, last1, first2, last2, first3 |
Opretter en ordnet forening af elementerne i område 1 og 2 (virker kun med sæt og multisæt)
|
Dynger
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
make_heap |
first, last |
Opretter en bunke fra rækkeværdier først sidst
|
pop_heap |
first, last |
Ændrer værdierne i første og sidste-1. Skubber området først til sidst-1 ind på heapen
|
push_heap |
first, last |
Sætter værdien fra sidste-1 i det resulterende heap-område (dynge, dynamisk hukommelsesområde) fra første til sidste
|
sort_heap |
first, last |
Bestiller elementerne i bunken først sidst
|
Relationsoperationer
Funktionsnavn |
Funktionsargumenter |
Funktionsbeskrivelse
|
lexicographical_compare |
first1, last1, first2, last2 |
Returnerer true, hvis rækkefølgen i område 2 alfabetisk følger rækkefølgen i område 1
|
max |
a, b |
Returnerer den største af a, b
|
max_element |
first, last |
Returnerer en iterator, der peger på det største objekt i et område
|
min |
a, b |
Returnerer den mindste af a, b
|
min_element |
first,last |
Returnerer en iterator, der peger på det mindste objekt i et område
|
next_permutation |
first, last |
Udfører én permutation i rækkefølgen af det givne område
|
prev_permutation |
first, last |
Udfører én omvendt permutation i rækkefølgen af det givne område
|
Noter
- ↑ ISO / IEC (2003). ISO/IEC 14882:2003(E): Programmeringssprog - C++ § 25 Algoritmebibliotek [lib.algorithms] stk. en
- ↑ Stroustrup, Bjarne. Programmering : principper og praksis ved hjælp af C++ . - Upper Saddle River, NJ: Addison-Wesley , 2009. - S. 729. - ISBN 9780321543721 . . - "Standardbibliotekets algoritmer findes i <algorithm>.".
Litteratur
- Laforet P. Appendiks E // Laforet P. Objektorienteret programmering i C++. - St. Petersborg: Peter, 2004. - S. 836-843.
Links