STL i c ++: Allt du behöver veta



Den här artikeln ger dig en detaljerad och omfattande kunskap om STL i C ++ och ger dig en uppfattning om de olika behållarna också.

Standardmallbiblioteket (STL) är en uppsättning C ++ - mallklasser för att tillhandahålla vanliga programmeringsdatastrukturer och funktioner som listor, staplar, matriser etc. I denna STL i C ++ - artikel kommer vi att diskutera följande pekare:

Fortsätter med den här artikeln om STL i C ++





C ++ mallar

C ++ ger oss en mallfunktion som gör att funktioner och klasser kan användas med generiska typer. Detta möjliggör återanvändning av en funktion eller klass och gör att den kan arbeta på många olika datatyper utan att skrivas om för var och en.

Fortsätter med den här artikeln om STL i C ++



Generiska funktioner och STL

Under programmeringen många gånger finns det ett behov av att skapa funktioner som utför samma operationer men som arbetar med olika datatyper. Så för att övervinna detta problem tillhandahåller C ++ en funktion för att skapa en enda generisk funktion istället för många funktioner som kan fungera med olika datatyper genom att använda mallparametern. Samlingen av dessa generiska klasser och funktioner kallas STL (Standard Template Library)

Komponenterna i STL som nu ingår i standard C ++ - biblioteket definieras i namnområdet std. Vi måste därför använda direktivet som använder namnområdet för att importera dem till vårt program.

Syntax:



Använda namespace std

php mysql_fetch_

STL har tre komponenter

  • Behållare

  • Algoritmer

  • Iteratorer

Dessa tre komponenter arbetar tillsammans med varandra för att ge stöd till en mängd olika programmeringslösningar. Algoritmen använder iteratorer för att utföra operation lagrad i containrar.

En container är ett objekt som lagrar data i minnet på ett organiserat sätt. Behållarna i STL implementeras av mallklasser och kan därför enkelt modifieras och anpassas för att innehålla olika typer av data.

Ett förfarande som används för att bearbeta data som finns i behållarna definieras som en algoritm. STL innehåller många olika typer av algoritmer för att ge stöd till uppgifter som att initiera, söka, kopiera, sortera och slå samman, kopiera, sortera och slå samman. Algoritmer implementeras av mallfunktioner.

En iterator kan definieras som ett objekt som pekar på ett element i en behållare. Iteratorer kan användas för att flytta genom innehållet i behållare. Iteratorer hanteras precis som pekare. Vi kan öka eller minska dem. Iteratorer ansluter algoritm med behållare och spelar en nyckelroll i manipuleringen av data som lagras i behållarna.

Container-STL-in-C++

Fortsätter med den här artikeln om STL i C ++

Behållare

STL definierar tio containrar som är grupperade i tre kategorier.

Behållare

Beskrivning

Rubrikfil

Iterator

Vektor

Det kan definieras som en dynamisk matris. Det tillåter direkt åtkomst till alla element.

Slumpmässig tillgång

Lista

Det är en dubbelriktad linjär lista. Det tillåter insättning och radering var som helst

Dubbelriktad

och

Det är en dubbelkö. Tillåter infogningar och raderingar i båda ändarna. Tillåter direkt åtkomst till alla element.

Slumpmässig tillgång

uppsättning

Det är en associerad behållare för lagring av unika uppsättningar. Tillåter snabb uppslagning.

Dubbelriktad

multiset

Det är en associerad behållare för lagring av icke-unika uppsättningar.

Dubbelriktad

Karta

Det är en associerad behållare för lagring av unika nyckel / värdepar. Varje nyckel är associerad med endast ett värde.

Dubbelriktad

multikarta

Det är en associerad behållare för lagring av nyckel / värde där en nyckel kan associeras med mer än ett värde (en-till-många-mappning). Det möjliggör en nyckelbaserad uppslagning.

Dubbelriktad

stack

En standardstack följer last-in-first-out (LIFO)

Ingen iterator

En standardkö följer först-in-först-ut (FIFO)

Ingen iterator

prioritet-kö

Det första elementet ut är alltid det högsta prioritetselementet

Ingen iterator

Sekvensbehållare

Sekvensbehållare lagrar element i linjär ordning. Alla element är relaterade till varandra genom sin position längs linjen. De tillåter införande av element och alla stöder flera operationer på dem.

STL tillhandahåller tre typer av sekvenselement:

  • Vektor
  • Lista
  • och

Associerande behållare:

De är utformade på ett sådant sätt att de kan stödja direkt åtkomst till element med hjälp av tangenter. De är inte sekventiella. Det finns fyra typer av

associerande behållare:

  1. Uppsättning
  2. Multiset
  3. Karta
  4. Multikarta

Alla ovanstående behållare lagrar data i en struktur som kallas träd vilket underlättar snabbt

sökning, radering och infogning till skillnad från sekventiell. Containerset eller multiset kan lagra olika objekt och tillhandahålla funktioner för att manipulera dem med hjälp av värdena som tangenter.

Och karta eller Multimap används för att lagra objekt i par, en som heter nyckeln och en annan

kallade värdet.

Avledda behållare:

STL tillhandahåller tre härledda behållare, nämligen stack, kö och prioritetskö. Dessa är även kända som containeradaptrar.

Det finns tre typer av härledda behållare:

1.Stack

2. kön

3.Priority_quue

Staplar, kö och prioritetskön kan enkelt skapas från olika sekvensbehållare. De härledda behållarna stöder inte iteratorer och därför kan vi inte använda dem för datamanipulation. De stöder dock tvåmedelsfunktionen pop () och push () för att implementera raderings- och infogningsoperationer.

Fortsätter med den här artikeln om STL i C ++

Algoritmer

Algoritmer är funktioner som generellt kan användas i olika behållare för bearbetning av innehållet. Även om varje container har funktioner för sina grundläggande operationer, tillhandahåller STL mer än sextio standardalgoritmer för att stödja mer utökade eller komplexa operationer. Standardalgoritmer tillåter oss också att arbeta med två olika typer av containrar samtidigt.

STL-algoritmer förstärker filosofin om återanvändbarhet. Genom att använda dessa algoritmer kan programmerare spara mycket tid och ansträngning. För att få tillgång till STL-algoritmerna måste vi inkludera i vårt program.

STL-algoritm, baserat på typen av operationer de utför, kan kategoriseras som under:

  • Icke-muterande algoritmer

  • Muterande algoritmer

  • Sorteringsalgoritmer

  • Ställ in algoritmer

  • Relationsalgoritm

Fortsätter med den här artikeln om STL i C ++

Iteratorer:

Iteratorer fungerar som pekare och används för att komma åt element i containern. Vi använder iteratorer för att flytta genom innehållet i behållare. Iteratorer hanteras precis som pekare. Vi kan öka eller minska dem enligt våra krav. Iteratorer ansluter behållare med algoritmer och spelar en viktig roll i manipuleringen av data som lagras i behållarna. De används ofta för att passera från ett element till ett annat, denna process kallas iterera genom behållaren.

hur man konverterar från dubbel till int Java

Det finns fem typer av iteratorer:

1.Inmatning

2. utgång

3. framåt

4. dubbelriktad

5. slump

Iterator

Åtkomstmetod

Riktning av rörelse

I / O-kapacitet

Anmärkning

Inmatning

Linjär

Endast framåt

Skrivskyddad

Kan inte sparas

Produktion

Linjär

Endast framåt

Skriv bara

Kan inte sparas

Fram

Linjär

Endast framåt

Läsa skriva

Kan sparas

Dubbelriktad

Linjär

Framåt och bakåt

Läsa skriva

Kan sparas

Slumpmässig

Slumpmässig

Framåt och bakåt

Läsa skriva

Kan sparas

java splitsträng flera avgränsare

Olika typer av iteratorer måste användas med de olika typerna av containrar så att endast

sekvens och associerande behållare får resa genom iteratorer. Varje typ av iteratorer används för att utföra vissa funktioner. Ingångs- och utgångs-iteratorerna stöder de minsta funktionerna. De kan endast användas för att passera i en container. De framåtriktade iteratorerna stöder alla operationer av in- och utdata iteratorer och behåller också sin position i behållaren. En dubbelriktad iterator ger stöd för all framåtriktad operation men ger möjlighet att röra sig bakåt i behållaren.

Således har vi kommit till ett slut på den här artikeln om ”STL i C ++”. Om du vill veta mer, kolla in av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.