logo

C++ Standard Template Library (STL)

Standard Template Library (STL) är en uppsättning C++-mallklasser för att tillhandahålla vanliga programmeringsdatastrukturer och -funktioner såsom listor, stackar, arrayer, etc. Det är ett bibliotek med containerklasser, algoritmer och iteratorer. Det är ett generaliserat bibliotek och därför är dess komponenter parametriserade. Arbetskunskap om mallklasser är en förutsättning för att arbeta med STL.

C++ Standard Template Library (STL) är en samling algoritmer, datastrukturer och andra komponenter som kan användas för att förenkla utvecklingen av C++-program. STL tillhandahåller en rad behållare, såsom vektorer, listor och kartor, såväl som algoritmer för att söka, sortera och manipulera data.



En av de viktigaste fördelarna med STL är att den ger ett sätt att skriva generisk, återanvändbar kod som kan appliceras på olika datatyper. Det betyder att du kan skriva en algoritm en gång, och sedan använda den med olika typer av data utan att behöva skriva separat kod för varje typ.

STL tillhandahåller också ett sätt att skriva effektiv kod. Många av algoritmerna och datastrukturerna i STL implementeras med hjälp av optimerade algoritmer, vilket kan resultera i snabbare exekveringstider jämfört med anpassad kod.

.04 som en bråkdel

Några av nyckelkomponenterna i STL inkluderar:

  1. Behållare: STL tillhandahåller en rad behållare, såsom vektor, lista, karta, uppsättning och stack, som kan användas för att lagra och manipulera data.
  2. Algoritmer: STL tillhandahåller en rad algoritmer, såsom sortering, hitta och binary_search, som kan användas för att manipulera data som lagras i behållare.
  3. Iteratorer: Iteratorer är objekt som tillhandahåller ett sätt att korsa elementen i en container. STL tillhandahåller en rad iteratorer, såsom forward_iterator, bidirectional_iterator och random_access_iterator, som kan användas med olika typer av behållare.
  4. Funktionsobjekt: Funktionsobjekt, även kända som funktorer, är objekt som kan användas som funktionsargument till algoritmer. De tillhandahåller ett sätt att skicka en funktion till en algoritm, så att du kan anpassa dess beteende.
  5. Adaptrar: Adaptrar är komponenter som ändrar beteendet hos andra komponenter i STL. Till exempel kan reverse_iterator-adaptern användas för att vända om ordningen på elementen i en behållare.

Genom att använda STL kan du förenkla din kod, minska sannolikheten för fel och förbättra prestandan för dina program.



STL har 4 komponenter:

    Algoritmer Behållare Funktioner Iteratorer

1. Algoritmer

Rubrikalgoritmen definierar en samling funktioner som är speciellt utformade för att användas på en rad olika element. De verkar på behållare och tillhandahåller medel för olika operationer för behållarnas innehåll.

  • Algoritm
    • Sortering
    • Sökande
    • Viktiga STL-algoritmer
    • Användbara Array-algoritmer
    • Partitionsoperationer
  • Numerisk
    • valarray klass

2. Behållare

Behållare eller containerklasser lagrar objekt och data. Det finns totalt sju standarder förstklassiga containerklasser och tre containeradapterklasser och endast sju headerfiler som ger åtkomst till dessa containers eller containeradaptrar.



  • Sekvensbehållare: implementera datastrukturer som kan nås på ett sekventiellt sätt.
    • vektor
    • lista
    • om vad
    • matriser
    • forward_list (Introducerad i C++11)
  • Behållaradaptrar: ger ett annat gränssnitt för sekventiella behållare.
  • Associativa behållare: implementera sorterade datastrukturer som snabbt kan sökas (O(log n) komplexitet).
  • Oordnade associativa behållare: implementera oordnade datastrukturer som snabbt kan sökas i
    • unordered_set (introducerat i C++11)
    • unordered_multiset (Introducerad i C++11)
    • unordered_map (Introducerat i C++11)
    • unordered_multimap (introducerad i C++11)

Flödesschema över adaptiva behållare och oordnade behållare Flödesschema över sekvensförpackningar och beställda behållare

3. Funktioner

STL inkluderar klasser som överbelastas funktionsanropsoperatören. Förekomster av sådana klasser kallas funktionsobjekt eller funktorer. Funktioner gör att den tillhörande funktionen kan anpassas med hjälp av parametrar som ska skickas. Måste läsas – Funktioner

4. Iteratorer

Som namnet antyder används iteratorer för att arbeta med en sekvens av värden. De är huvudfunktionen som tillåter generalitet i STL. Måste läsasIteratorer

Verktygsbibliotek

Definierat i rubriken. Måste läsasPara i C++ STL

För mer information, se Senaste artiklar om STL!

Fördelar med C++ Standard Template Library (STL):

  1. Återanvändbarhet: En av de viktigaste fördelarna med STL är att det ger ett sätt att skriva generisk, återanvändbar kod som kan appliceras på olika datatyper. Detta kan leda till mer effektiv och underhållbar kod.
  2. Effektiva algoritmer: Många av algoritmerna och datastrukturerna i STL implementeras med optimerade algoritmer, vilket kan resultera i snabbare exekveringstider jämfört med anpassad kod.
  3. Förbättrad kodläsbarhet: STL ger ett konsekvent och väldokumenterat sätt att arbeta med data, vilket kan göra din kod lättare att förstå och underhålla.
  4. Stor gemenskap av användare: STL används flitigt, vilket innebär att det finns en stor gemenskap av utvecklare som kan tillhandahålla support och resurser, såsom tutorials och forum.

Nackdelar med C++ Standard Template Library (STL):

  1. Inlärningskurva: STL kan vara svårt att lära sig, särskilt för nybörjare, på grund av dess komplexa syntax och användningen av avancerade funktioner som iteratorer och funktionsobjekt.
  2. Brist på kontroll: När du använder STL måste du lita på implementeringen som tillhandahålls av biblioteket, vilket kan begränsa din kontroll över vissa aspekter av din kod.
  3. Prestanda: I vissa fall kan användning av STL resultera i långsammare exekveringstider jämfört med anpassad kod, särskilt när man hanterar små mängder data.