Standard algoritmusok
A konténerek mellett a standard könyvtár számos algoritmust tartalmaz (kb. 60). Az STL algoritmus egy szó szó szerinti értelemben vett algoritmusa; néhány művelet bizonyos adatokon. Minden algoritmus feldolgozza az adatokat két iterátor által meghatározott sorrendben. Ez azt jelenti, hogy a tartalom algoritmySTLmogut kezelni konteynerovSTL szabványos és nem szabványos (de kompatibilis vele), valamint bármely szekvenciáját paroySTLsovmestimyh iterátorokat.
// a program megjeleníti a latin ábécét
névtér std;
int fő (int, char **)
(i = 0; <26; i++)
A standard algoritmusok olyan gyakran előforduló műveleteket hajthatnak végre, mint a keresés, a számlálás, a csere, a törlés és a különböző típusú rendezések. Ebben az esetben az összes standard algoritmus két csoportra osztható: módosító szekvenciák és nem módosító szekvenciák. Jellemzően a módosító algoritmusok között a rendezési algoritmusok kerülnek kiválasztásra.
Feldolgozott szekvenciák
Meg kell jegyezni, hogy az összes szabványos algoritmusok vesszük a feldolgozott szekvencia, a szekvencia formájában [iterator_first; iterator_last), gdeiterator_first- iterátor jelezve az első eleme a szekvencia, iterator_last- iterator az elem a követő szekvencia az utolsó (zakonechny elem).
Azt is meg kell jegyezni, hogy az algoritmusok nem ellenőrzik a rájuk átadott adatokat, azaz A standard szekvencia algoritmusoknak átadott szekvenciáknak érvényeseknek kell lenniük, az iterator_last-nak elérhetőnek kell lennie aiteriter_first, a végleges (esetleg nulla) lépések számától. Ha a sorrend nem érvényes, a program viselkedése nem meghatározott.
vektor
vektor
// [vec1.begin () + 5; A vec1.begin ()) érvénytelen sorrend,
// annak ellenére, hogy az iterátorok egyenként érvényesek
// vec1.begin () nem érhető el a vec1.begin () + 5-ből
// [vec1.begin () + 50; A vec1.end ()) egy érvénytelen sorrend,
// vec1.begin () + 50 - Érvénytelen iterátor
// [vec1.begin (); A vec2.end ()) egy érvénytelen sorrend,
// iterátorok különböző tartályokhoz tartoznak
Egyes algoritmusok 1. bemenetként két szekvenciát fogadnak el. Az első szekvenciát a szokásos módon egy iterátorpárral határozzuk meg [first1; last1), és a second onlyfirst2 egy iterátor, amely a szekvencia elejére mutat. Ebben az esetben általában azt feltételezzük, hogy a második szekvencia hossza legalább nem kisebb, mint az első szekvencia hossza, azaz E. az iterator alkalmazásnak az iteratoror első 2 műveleti operátor ++ (utolsó1-első) időpontja nem eredményezheti az eredő iterátor érvénytelenségét.