standard template library
Een compleet overzicht van Standard Template Library (STL):
Standard Template Library (STL) van C ++ is een verzameling sjabloonklassen die gegevensstructuren bieden zoals arrays, vectoren, wachtrijen, enz. STL is een bibliotheek die bestaat uit containers, algoritmen en iteratoren.
Omdat STL bestaat uit een verzameling sjabloonklassen, is het een algemene bibliotheek die onafhankelijk is van gegevenstypen.
Lees hier de uitgebreide serie C ++ Training Tutorial.
Wat je leert:
invoeging sorteercode c ++
Componenten van STL
STL bestaat voornamelijk uit de volgende componenten die hieronder worden genoemd:
# 1) Containers
Een container is een verzameling objecten van een bepaald type gegevensstructuur. In STL hebben we verschillende soorten containerklassen zoals Array, vector, wachtrij, deque, lijst, kaart, set, enz. Deze containers zijn generiek van aard en worden geïmplementeerd als klassetemplates.
Containers zijn dynamisch van aard en kunnen worden gebruikt om verschillende soorten objecten in te bewaren.
# 2) Algoritmen
Algoritmen zijn de methoden of functies die op containers werken. Door algoritmen van STL te gebruiken, kunnen we methoden hebben om de inhoud van containerklasseobjecten te zoeken, sorteren, wijzigen, transformeren of initialiseren.
Algoritmen die door STL worden geleverd, hebben ingebouwde functies die direct kunnen werken op complexe datastructuren in plaats van de algoritmen zelf te moeten schrijven.
Bijvoorbeeld, reverse () functie in STL kan worden gebruikt om de gekoppelde lijst om te keren.
# 3) Iteratoren
Iteratoren zijn het zeer belangrijke en onderscheidende kenmerk van STL. Iteratoren zijn de constructies die worden gebruikt om door de containerobjecten te lopen. Net als bij indexen die we gebruiken om door de arrays te stappen, werken Iterators op containerklasseobjecten en kunnen ze worden gebruikt om door de gegevens te lopen.
Containers
Containers slaan objecten en gegevens op. Het zijn in feite op sjablonen gebaseerde generieke klassen.
Containers in STL zijn onderverdeeld in de volgende typen:
# 1) Opeenvolgende containers
Containers die op een sequentiële of lineaire manier kunnen worden geopend, worden sequentiële containers genoemd.
Arrays, vectoren, lijsten en deques zijn de STL-containers die gegevens lineair opslaan en op een sequentiële manier toegankelijk zijn.
# 2) Associatieve containers
Associatieve containers zijn containers die gesorteerde datastructuren implementeren. Deze containers zijn snel te doorzoeken. Sommige van de Voorbeelden van associatieve containers zijn Map, Set, MultiMap, Multiset, etc. Deze containers worden meestal geïmplementeerd in een sleutel / waarde-paarmanier.
# 3) Containeradopters
Containeradopters zijn sequentiële containers, maar ze worden geïmplementeerd door een andere interface te bieden. Dus containers zoals een wachtrij, deque, stapel en prioriteitswachtrij worden allemaal geclassificeerd als containeradopters.
Iteratoren
Iteratoren zijn constructies die we gebruiken om containers in STL te doorlopen of te doorlopen. Iteratoren zijn erg belangrijk in STL omdat ze een brug vormen tussen algoritmen en containers. Iterators wijzen altijd naar containers en eigenlijk werken algoritmen op iterators en nooit rechtstreeks op containers.
Iteratoren zijn van de volgende typen:
- Invoer Iteratoren: Eenvoudigste en wordt meestal gebruikt in single-pass-algoritmen.
- Uitgang Iteratoren: Hetzelfde als invoer-iteratoren, maar niet gebruikt voor doorlopen.
- Bidirectionele iteratoren: Deze iteratoren kunnen in beide richtingen bewegen.
- Forward Iterators: Kan alleen in voorwaartse richting worden gebruikt, stap voor stap.
- Random Access Iterators: Hetzelfde als verwijzingen. Kan worden gebruikt om willekeurig toegang te krijgen tot elk element.
Algoritmen
Algoritmen zijn een set functies of methoden die door STL worden geleverd en die op containers werken. Dit zijn ingebouwde functies en kunnen direct worden gebruikt met de STL-containers en iterators in plaats van onze eigen algoritmen te schrijven.
STL ondersteunt de volgende soorten algoritmen:
wat is het verschil tussen qa en qc
- Algoritmen zoeken
- Sorteeralgoritmen
- Algoritmen aanpassen of manipuleren
- Algoritmen die niet veranderen
- Numerieke algoritmen
- Min / Max-algoritmen
Zoals elk van de algoritme-typen suggereert, kunnen deze algoritmen worden gebruikt om verschillende functies in STL-containers te bereiken, zoals zoeken, sorteren, de gegevens in de containers transformeren, de min / max-waarde vinden, enz.
Gevolgtrekking
Dit is de korte introductie van Standard Template Library. In onze aanstaande tutorials zullen we meer leren over elk van de containers, algoritmen en iterators.
Bekijk hier de complete C ++ GRATIS trainingsreeks.