C++ vektorer er en del af STL (Standard Template Library). STL er et af mange tilgængelige biblioteker til C++, som øger applikationernes effektivitet, fleksibilitet og ydeevne. Vektorer er meget nyttige og et vigtigt koncept for alle, der ønsker at blive dygtige i C++.
C++ vektorer er i det væsentlige containere, som du kan bruge til at gemme data. De gør arbejdet med arrays rent og hurtigt, så det er en værdifuld færdighed at vide, hvordan man bruger C++-vektorer, hvis du ønsker at udvikle en C++-applikation. Læs videre, mens vi diskuterer alt, hvad du behøver at vide om C++ vektorer.
Hvad er C++-vektorer?
C++ vektorer er sekvensbeholdere, der er en væsentlig komponent i Standard Template Library. Vektorer repræsenterer arrays, der dynamisk kan ændre størrelse under kørsel, hvis det kræves.
I modsætning til traditionelle arrays behøver du ikke at administrere en vektors hukommelsesallokering eksplicit. Vektorens beholder styrer automatisk sin hukommelse. Du kan tænke på C++ vektorer som et dynamisk array, der justerer sig selv efter tilføjelse eller fjernelse af et element.
Derudover arrangerer en vektor sine elementer sammenhængende. Det betyder, at du nemt kan få adgang til dem ved hjælp af pointere eller iteratorer.
Hvordan std:: vektor virker
Nu hvor du er bekendt med, hvad C++ vektorer er, skal du forstå, hvordan de fungerer, før du kan begynde at bruge dem i din kode.
Relaterede: Er C++ stadig relevant i 2021?
Når du bruger en C++ vektor, vil den indsætte nye elementer i slutningen i differentiel tid. Dette skyldes, at vektoren i nogle tilfælde skal udvides for at rumme det nye element. Tilsvarende, hvis du skulle udtrække det sidste element i en vektor, ville det tage konstant tid, vektoren ikke behøver at justere sin længde (størrelse).
For at bruge vektorer effektivt gør vi brug af iteratorer og indbyggede funktioner. Iteratorer er pointere, der bruges sammen med C++-vektorer. De forenkler at krydse vektorbeholderen. Der er mange forskellige vektorfunktioner, og vi vil se på nogle af de vigtige i næste afsnit.
C++ vektorfunktioner
Lad os se på nogle iterator- og STL-beholderfunktioner, der almindeligvis bruges med C++-vektorer:
- begynde() returnerer en iterator-pointer, der peger på det første element i vektoren.
- ende() returnerer en iterator-markør til efter-endepositionen af vektorbeholderen.
- rbegin() er ligesom begynde(), men det giver dig en omvendt iterator, der peger på det sidste element i vektoren.
- størrelse() returnerer et antal elementer gemt i vektoren.
- max_size() returnerer den maksimale kapacitet af elementer, som vektorbeholderen kan rumme.
- ændre størrelse (x) vil ændre størrelsen på vektorbeholderen, så den kan holde x elementer.
- tom() returnerer sand, hvis vektorbeholderen ikke har nogen elementer.
- skub tilbage() indsætter et nyt element i vektoren til sidst.
- pop_back() udtrækker et element fra enden af vektorbeholderen.
- indsæt() giver dig mulighed for at tilføje et element til vektoren på en specificeret position.
C++ vektoreksempel
Brug af vektorer i C++ gør kodning med arrays fleksibel og hurtig. Lad os tage et kig på noget eksempelkode, der bruger C++ vektorer.
#omfatte
#omfatte
bruger navneområde std;
void main()
{
vektor arr;
// push_back for at tilføje elementer til slutningen af vores container
arr.push_back (10);
arr.push_back (5);
arr.push_back (20);
// vektor indeholder nu [10,5,20]
// brug start() iterator til at krydse container indtil end() pointer
cout << "begin() og end() iteratorer: ";
for (auto j = arr.begin(); j != arr.end(); j++)
{
cout << *j << ' ';
}
// Forventet output: 10 5 20
// rbegin() og rend() bruges til at vende tilbage til vektorbeholderen
cout << "rbegin() og rend() iteratorer: ";
for (auto j = arr.rbegin(); j != arr.rend(); j++)
{
cout << *j << ' ';
}
// Forventet output: 20 5 10
cout << "Størrelsen af array er: " << arr.size() << endl;
// Forventet output: Størrelsen af array er: 3
// Ændr størrelse på matrix til kun at have 2 elementer
arr.resize (2);
cout << "Størrelsen af array er: " << arr.size() << endl;
// Forventet output: Størrelsen af array er: 2
cout << "MaxSize(): " << arr.max_size() << endl;
cout << "Vektor Tom? " << arr.empty() << endl;
// pop_back sidste element
arr.pop_back();
// indsæt 5 i begyndelsen af array
arr.insert (arr.begin(), 5);
}
Relaterede: Sådan lærer du C++ programmering
Brug af vektorer i C++
C++-vektorer er fleksible og kraftfulde, hvorfor de er en væsentlig funktion for enhver C++-udvikler derude. STL er et betydeligt C++ bibliotek, og at udforske det i detaljer kan hjælpe dig med at skabe bedre applikationer.
Ønsker du at forstå C++ bedre med standardskabelonbiblioteket? Hit bøgerne her.
Læs Næste
- Programmering
- Programmering
- Objektorienteret programmering
Fahad er forfatter på MakeUseOf og er i øjeblikket ved at studere datalogi. Som en ivrig tech-skribent sørger han for, at han holder sig opdateret med den nyeste teknologi. Han finder sig især interesseret i fodbold og teknologi.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere