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:

  1. første, sidste — slut- og startiteratorer (først1, sidste1, første2, sidste2 — slut- og startiteratorer i henholdsvis område 1 og 2)
  2. midten - en iterator , der peger på en bestemt position i beholderen
  3. funktion, prædikat, op og comp er funktionsobjekter
  4. værdi, ny, gammel og init er værdierne for de objekter, der er gemt i containerne
  5. a, b er nogle objekter af samme type
  6. 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

  1. ISO / IEC (2003). ISO/IEC 14882:2003(E): Programmeringssprog - C++ § 25 Algoritmebibliotek [lib.algorithms] stk. en
  2. 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

Links