C++-vektorer är en del av STL (Standard Template Library). STL är ett av många tillgängliga bibliotek för C++ som ökar applikationernas effektivitet, flexibilitet och prestanda. Vektorer är mycket användbara och ett viktigt koncept för alla som vill bli skickliga i C++.
C++-vektorer är i huvudsak behållare som du kan använda för att lagra data. De gör arbetet med arrayer rent och snabbt, så att veta hur man använder C++-vektorer är en värdefull färdighet om du vill utveckla en C++-applikation. Läs vidare när vi diskuterar allt du behöver veta om C++-vektorer.
Vad är C++-vektorer?
C++-vektorer är sekvensbehållare som är en viktig komponent i standardmallbiblioteket. Vektorer representerar arrayer som dynamiskt kan ändra storlek under körning om det behövs.
Till skillnad från traditionella arrayer behöver du inte hantera en vektors minnesallokering explicit. Vektorns behållare hanterar automatiskt dess minne. Du kan tänka på C++-vektorer som en dynamisk array som justerar sig själv efter att ha lagt till eller tagit bort ett element.
Dessutom arrangerar en vektor sina element sammanhängande. Det betyder att du enkelt kan komma åt dem med hjälp av pekare eller iteratorer.
Hur std:: vektor fungerar
Nu när du är bekant med vad C++-vektorer är, måste du förstå hur de fungerar innan du kan börja använda dem i din kod.
Relaterad: Är C++ fortfarande relevant 2021?
När du använder en C++-vektor kommer den att infoga nya element i slutet i differentiell tid. Detta beror på att vektorn i vissa fall måste expandera för att rymma det nya elementet. På liknande sätt, om du skulle extrahera det sista elementet i en vektor, skulle det ta konstant tid som vektorn inte behöver justera sin längd (storlek).
För att använda vektorer effektivt använder vi iteratorer och inbyggda funktioner. Iteratorer är pekare som används tillsammans med C++-vektorer. De förenklar korsningen av vektorbehållaren. Det finns många olika vektorfunktioner, och vi kommer att titta på några av de viktiga i nästa avsnitt.
C++ vektorfunktioner
Låt oss titta på några iterator- och STL-behållarfunktioner som vanligtvis används med C++-vektorer:
- Börja() returnerar en iteratorpekare som pekar på det första elementet i vektorn.
- slutet() returnerar en iteratorpekare till efterslutspositionen för vektorbehållaren.
- rbegin() är som Börja(), men det ger dig en omvänd iterator som pekar på det sista elementet i vektorn.
- storlek() returnerar ett antal element lagrade i vektorn.
- max_size() returnerar den maximala kapaciteten för element som vektorbehållaren kan ta emot.
- ändra storlek (x) kommer att ändra storlek på vektorbehållaren så att den kan hålla x element.
- tömma() returnerar sant om vektorbehållaren inte har några element.
- trycka tillbaka() infogar ett nytt element i vektorn i slutet.
- pop_back() extraherar ett element från slutet av vektorbehållaren.
- Föra in() låter dig lägga till ett element till vektorn på en angiven position.
C++ vektorexempel
Att använda vektorer i C++ gör kodning med arrayer flexibel och snabb. Låt oss ta en titt på några exempelkoder som använder C++-vektorer.
#omfatta
#omfatta
använder namnutrymme std;
void main()
{
vektor arr;
// push_back för att lägga till element i slutet av vår behållare
arr.push_back (10);
arr.push_back (5);
arr.push_back (20);
// vektor innehåller nu [10,5,20]
// använd start()-iteratorn för att gå igenom behållaren tills end()-pekaren
cout << "begin() och end() iteratorer: ";
för (auto j = arr.begin(); j != arr.end(); j++)
{
cout << *j << ' ';
}
// Förväntad utgång: 10 5 20
// rbegin() och rend() används för att vända på vektorbehållaren
cout << "rbegin() och rend() iteratorer: ";
för (auto j = arr.rbegin(); j != arr.rend(); j++)
{
cout << *j << ' ';
}
// Förväntad utgång: 20 5 10
cout << "Storleken på arrayen är: " << arr.size() << endl;
// Förväntad utdata: Storleken på arrayen är: 3
// Ändra storlek på array för att bara ha 2 element
arr.resize (2);
cout << "Storleken på arrayen är: " << arr.size() << endl;
// Förväntad utdata: Storleken på arrayen är: 2
cout << "MaxSize(): " << arr.max_size() << endl;
cout << "Vektor Tom? " << arr.empty() << endl;
// pop_back sista element
arr.pop_back();
// infoga 5 i början av arrayen
arr.insert (arr.begin(), 5);
}
Relaterad: Hur man lär sig C++-programmering
Använda vektorer i C++
C++-vektorer är flexibla och kraftfulla, vilket är anledningen till att de är en viktig funktion för alla C++-utvecklare där ute. STL är ett betydande C++-bibliotek, och att utforska det i detalj kan hjälpa dig att skapa bättre applikationer.
Vill du bättre förstå C++ med standardmallbiblioteket? Hitta böckerna här.
Läs Nästa
- Programmering
- Programmering
- Objektorienterad programmering
Fahad är författare på MakeUseOf och studerar för närvarande datavetenskap. Som en ivrig teknikskribent ser han till att han håller sig uppdaterad med den senaste tekniken. Han är särskilt intresserad av fotboll och teknik.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera