vector
klass
C++ Standard Library-vektorklassen är en klassmall för sekvenscontainrar. En vektor lagrar element av en viss typ i ett linjärt arrangemang och ger snabb slumpmässig åtkomst till alla element. En vektor är den föredragna containern för en sekvens när prestanda för slumpmässig åtkomst är premium.
Syntax
template <class Type, class Allocator = allocator<Type>>
class vector;
Parametrar
Type
Den elementdatatyp som ska lagras i vektorn.
Allocator
Den typ som representerar det lagrade allokeringsobjektet som kapslar in information om vektorns allokering och frigöring av minne. Det här argumentet är valfritt och standardvärdet är allocator<Type>
.
Anmärkningar
Vektorer tillåter konstanta tidsinfogningar och borttagningar i slutet av sekvensen. Infogning eller borttagning av element i mitten av en vektor kräver linjär tid.
deque
-klassen containern går snabbare vid infogningar och borttagningar i början och slutet av en sekvens. Containern list
klass snabbare vid infogningar och borttagningar på valfri plats i en sekvens.
Omfördelning av vektorer inträffar när en medlemsfunktion måste öka sekvensen i vektorobjektet utöver den aktuella lagringskapaciteten. Andra infogningar och raderingar kan ändra olika lagringsadresser i sekvensen. I alla sådana fall blir iteratorer eller referenser som pekar på ändrade delar av sekvensen ogiltiga. Om ingen omfördelning sker är det bara iteratorer och referenser innan insättnings-/borttagningspunkten är giltiga.
Klassen vector<bool>
är en fullständig specialisering av klassmallvektorn för element av typen bool
. Den har en allokering för den underliggande typen som används av specialiseringen.
Referensklassen vector<bool>
är en kapslad klass vars objekt kan ge referenser till element (enkla bitar) i ett vector<bool>
-objekt.
Medlemmar
Konstruktörer
Namn | Beskrivning |
---|---|
vector |
Konstruerar en vektor med en viss storlek eller med element av ett visst värde eller med en specifik allocator eller som en kopia av någon annan vektor. |
Typedefs
Namn | Beskrivning |
---|---|
allocator_type |
En typ som representerar klassen allocator för vektorobjektet. |
const_iterator |
En typ som ger en iterator med slumpmässig åtkomst som kan läsa ett const element i en vektor. |
const_pointer |
En typ som ger en pekare till ett const element i en vektor. |
const_reference |
En typ som ger en referens till ett const element som lagras i en vektor. Den används för att läsa och utföra const åtgärder. |
const_reverse_iterator |
En typ som ger en iterator med slumpmässig åtkomst som kan läsa alla const element i vektorn. |
difference_type |
En typ som ger skillnaden mellan adresserna för två element i en vektor. |
iterator |
En typ som ger en iterator med slumpmässig åtkomst som kan läsa eller ändra alla element i en vektor. |
pointer |
En typ som ger en pekare till ett element i en vektor. |
reference |
En typ som ger en referens till ett element som lagras i en vektor. |
reverse_iterator |
En typ som ger en iterator med slumpmässig åtkomst som kan läsa eller ändra alla element i en omvänd vektor. |
size_type |
En typ som räknar antalet element i en vektor. |
value_type |
En typ som representerar datatypen som lagras i en vektor. |
Funktioner
Namn | Beskrivning |
---|---|
assign |
Raderar en vektor och kopierar de angivna elementen till den tomma vektorn. |
at |
Returnerar en referens till elementet på en angiven plats i vektorn. |
back |
Returnerar en referens till det sista elementet i vektorn. |
begin |
Returnerar en iterator med slumpmässig åtkomst till det första elementet i vektorn. |
capacity |
Returnerar antalet element som vektorn kan innehålla utan att allokera mer lagringsutrymme. |
cbegin |
Returnerar en beständig iterator med slumpmässig åtkomst till det första elementet i vektorn. |
cend |
Returnerar en beständig iterator med slumpmässig åtkomst som pekar precis utanför vektorns ände. |
crbegin |
Returnerar en const iterator till det första elementet i en omvänd vektor. |
crend |
Returnerar en const-iterator till slutet av en omvänd vektor. |
clear |
Raderar elementen i vektorn. |
data |
Returnerar en pekare till det första elementet i vektorn. |
emplace |
Infogar ett element som är konstruerat på plats i vektorn vid en angiven position. |
emplace_back |
Lägger till ett element som är konstruerat på plats i slutet av vektorn. |
empty |
Testar om vektorcontainern är tom. |
end |
Returnerar en iterator med slumpmässig åtkomst som pekar mot slutet av vektorn. |
erase |
Tar bort ett element eller ett område med element i en vektor från angivna positioner. |
front |
Returnerar en referens till det första elementet i en vektor. |
get_allocator |
Returnerar ett objekt till den allocator -klass som används av en vektor. |
insert |
Infogar ett element eller många element i vektorn vid en angiven position. |
max_size |
Returnerar vektorns maximala längd. |
pop_back |
Tar bort elementet i slutet av vektorn. |
push_back |
Lägg till ett element i slutet av vektorn. |
rbegin |
Returnerar en iterator till det första elementet i en omvänd vektor. |
rend |
Returnerar en iterator till slutet av en omvänd vektor. |
reserve |
Reserverar en minsta lagringslängd för ett vektorobjekt. |
resize |
Anger en ny storlek för en vektor. |
shrink_to_fit |
Tar bort överkapacitet. |
size |
Returnerar antalet element i vektorn. |
swap |
Utbyter elementen i två vektorer. |
Operatörer
Namn | Beskrivning |
---|---|
operator[] |
Returnerar en referens till vektorelementet vid en angiven position. |
operator= |
Ersätter elementen i vektorn med en kopia av en annan vektor. |
allocator_type
En typ som representerar allokeringsklassen för vektorobjektet.
typedef Allocator allocator_type;
Anmärkningar
allocator_type
är synonymt med mallparametern Allocator
.
Exempel
Se exemplet för get_allocator
för ett exempel som använder allocator_type
.
assign
Raderar en vektor och kopierar de angivna elementen till den tomma vektorn.
void assign(size_type count, const Type& value);
void assign(initializer_list<Type> init_list);
template <class InputIterator>
void assign(InputIterator first, InputIterator last);
Parametrar
first
Positionen för det första elementet i området med element som ska kopieras.
last
Positionen för det första elementet utanför det område med element som ska kopieras.
count
Antalet kopior av ett element som infogas i vektorn.
value
Värdet för elementet som infogas i vektorn.
init_list
Den initializer_list som innehåller elementen som ska infogas.
Anmärkningar
Först raderar assign
alla befintliga element i en vektor. Sedan infogar assign
antingen ett angivet område med element från den ursprungliga vektorn i en vektor, eller så infogas kopior av ett nytt angivet värdeelement i en vektor.
Exempel
// vector_assign.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1, v2, v3;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
cout << "v1 = ";
for (auto& v : v1)
{
cout << v << " ";
}
cout << endl;
v2.assign(v1.begin(), v1.end());
cout << "v2 = ";
for (auto& v : v2)
{
cout << v << " ";
}
cout << endl;
v3.assign(7, 4);
cout << "v3 = ";
for (auto& v : v3)
{
cout << v << " ";
}
cout << endl;
v3.assign({ 5, 6, 7 });
cout << "v3 = ";
for (auto& v : v3)
{
cout << v << " ";
}
cout << endl;
}
v1 = 10 20 30 40 50
v2 = 10 20 30 40 50
v3 = 4 4 4 4 4 4 4
v3 = 5 6 7
at
Returnerar en referens till elementet på en angiven plats i vektorn.
reference at(size_type position);
const_reference at(size_type position) const;
Parametrar
position
Det nedsänkta eller positionsnummer för elementet som ska refereras till i vektorn.
Returvärde
En referens till elementet som är nedsänkt i argumentet. Om position
är större än vektorns storlek utlöser at
ett undantag.
Anmärkningar
Om returvärdet för at
tilldelas till en const_reference
kan vektorobjektet inte ändras. Om returvärdet för at
tilldelas till en reference
kan vektorobjektet ändras.
Exempel
// vector_at.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
const int &i = v1.at(0);
int &j = v1.at(1);
cout << "The first element is " << i << endl;
cout << "The second element is " << j << endl;
}
The first element is 10
The second element is 20
back
Returnerar en referens till det sista elementet i vektorn.
reference back();
const_reference back() const;
Returvärde
Det sista elementet i vektorn. Om vektorn är tom är returvärdet odefinierat.
Anmärkningar
Om returvärdet för back
tilldelas till en const_reference
kan vektorobjektet inte ändras. Om returvärdet för back
tilldelas till en reference
kan vektorobjektet ändras.
När du kompileras med hjälp av _ITERATOR_DEBUG_LEVEL
definierat som 1 eller 2 uppstår ett körningsfel om du försöker komma åt ett element i en tom vektor. Mer information finns i Kontrollerade iteratorer.
Exempel
// vector_back.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(11);
int& i = v1.back();
const int& ii = v1.front();
cout << "The last integer of v1 is " << i << endl;
i--;
cout << "The next-to-last integer of v1 is " << ii << endl;
}
The last integer of v1 is 11
The next-to-last integer of v1 is 10
begin
Returnerar en iterator med slumpmässig åtkomst till det första elementet i vektorn.
const_iterator begin() const;
iterator begin();
Returvärde
En iterator med slumpmässig åtkomst som adresserar det första elementet i vector
eller till platsen som lyckas med en tom vector
. Jämför alltid värdet som returneras med vector::end
för att säkerställa att det är giltigt.
Anmärkningar
Om returvärdet för begin
har tilldelats till en vector::const_iterator
kan vector
-objektet inte ändras. Om returvärdet för begin
har tilldelats till en vector::iterator
kan vector
-objektet ändras.
Exempel
// vector_begin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> c1;
vector<int>::iterator c1_Iter;
vector<int>::const_iterator c1_cIter;
c1.push_back(1);
c1.push_back(2);
cout << "The vector c1 contains elements:";
c1_Iter = c1.begin();
for (; c1_Iter != c1.end(); c1_Iter++)
{
cout << " " << *c1_Iter;
}
cout << endl;
cout << "The vector c1 now contains elements:";
c1_Iter = c1.begin();
*c1_Iter = 20;
for (; c1_Iter != c1.end(); c1_Iter++)
{
cout << " " << *c1_Iter;
}
cout << endl;
// The following line would be an error because iterator is const
// *c1_cIter = 200;
}
The vector c1 contains elements: 1 2
The vector c1 now contains elements: 20 2
capacity
Returnerar antalet element som vektorn kan innehålla utan att allokera mer lagringsutrymme.
size_type capacity() const;
Returvärde
Den aktuella lagringslängden som allokerats för vektorn.
Anmärkningar
Medlemsfunktionen resize
blir effektivare om tillräckligt med minne allokeras för att rymma den. Använd medlemsfunktionen reserve
för att ange mängden allokerat minne.
Exempel
// vector_capacity.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(1);
cout << "The length of storage allocated is "
<< v1.capacity() << "." << endl;
v1.push_back(2);
cout << "The length of storage allocated is now "
<< v1.capacity() << "." << endl;
}
The length of storage allocated is 1.
The length of storage allocated is now 2.
cbegin
Returnerar en const
iterator som adresserar det första elementet i intervallet.
const_iterator cbegin() const;
Returvärde
En const
iterator för slumpmässig åtkomst som pekar på det första elementet i intervallet eller platsen precis utanför slutet av ett tomt intervall (för ett tomt intervall cbegin() == cend()
).
Anmärkningar
Med returvärdet för cbegin
kan elementen i intervallet inte ändras.
Du kan använda den här medlemsfunktionen i stället för funktionen begin()
medlem för att garantera att returvärdet är const_iterator
. Vanligtvis används det i med nyckelordet auto
typavdrag, som du ser i följande exempel. I exemplet bör du överväga att Container
vara en ändringsbar (icke-const
) container av något slag som stöder begin()
och cbegin()
.
auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator
cend
Returnerar en const
iterator som pekar på elementet som följer det sista elementet i vektorn.
const_iterator cend() const;
Returvärde
En const
tidigare iterator för vektorn. Den pekar på elementet som följer det sista elementet i vektorn. Det elementet är en platshållare och bör inte avrefereras. Använd den endast för jämförelser. Om vektorn är tom vector::cend() == vector::cbegin()
.
Anmärkningar
cend
används för att testa om en iterator har passerat slutet av sitt intervall.
Du kan använda den här medlemsfunktionen i stället för funktionen end()
medlem för att garantera att returvärdet är const_iterator
. Vanligtvis används det med nyckelordet auto
typavdrag, som du ser i följande exempel. I exemplet bör du överväga att Container
vara en ändringsbar (icke-const
) container av något slag som stöder end()
och cend()
.
auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();
// i2 is Container<T>::const_iterator
Värdet som returneras av cend
ska inte derefereras. Använd den endast för jämförelser.
clear
Raderar elementen i vektorn.
void clear();
Exempel
// vector_clear.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
cout << "The size of v1 is " << v1.size() << endl;
v1.clear();
cout << "The size of v1 after clearing is " << v1.size() << endl;
}
The size of v1 is 3
The size of v1 after clearing is 0
const_iterator
En typ som ger en iterator med slumpmässig åtkomst som kan läsa ett const
element i en vektor.
typedef implementation-defined const_iterator;
Anmärkningar
En typ const_iterator
kan inte användas för att ändra värdet för ett element.
Exempel
Se exemplet för tillbaka för ett exempel som använder const_iterator
.
const_pointer
En typ som ger en pekare till ett const
element i en vektor.
typedef typename Allocator::const_pointer const_pointer;
Anmärkningar
En typ const_pointer
kan inte användas för att ändra värdet för ett element.
En iterator används oftare för att komma åt ett vektorelement.
const_reference
En typ som ger en referens till ett const
element som lagras i en vektor. Den används för att läsa och utföra const
åtgärder.
typedef typename Allocator::const_reference const_reference;
Anmärkningar
En typ const_reference
kan inte användas för att ändra värdet för ett element.
Exempel
// vector_const_ref.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
const vector<int> v2 = v1;
const int& i = v2.front();
const int& j = v2.back();
cout << "The first element is " << i << endl;
cout << "The second element is " << j << endl;
// The following line would cause an error as v2 is const
// v2.push_back(30);
}
The first element is 10
The second element is 20
const_reverse_iterator
En typ som ger en iterator med slumpmässig åtkomst som kan läsa alla const
element i vektorn.
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
Anmärkningar
En typ const_reverse_iterator
inte kan ändra värdet för ett element och används för att iterera genom vektorn i omvänd ordning.
Exempel
Se rbegin
för ett exempel på hur du deklarerar och använder en iterator.
crbegin
Returnerar en const iterator till det första elementet i en omvänd vektor.
const_reverse_iterator crbegin() const;
Returvärde
En const reverse random-access iterator som hanterar det första elementet i en omvänd vector
eller som tar upp vad som hade varit det sista elementet i den oreverserade vector
.
Anmärkningar
Med returvärdet för crbegin
kan vector
-objektet inte ändras.
Exempel
// vector_crbegin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator v1_Iter;
vector<int>::const_reverse_iterator v1_rIter;
v1.push_back(1);
v1.push_back(2);
v1_Iter = v1.begin();
cout << "The first element of vector is "
<< *v1_Iter << "." << endl;
v1_rIter = v1.crbegin();
cout << "The first element of the reversed vector is "
<< *v1_rIter << "." << endl;
}
The first element of vector is 1.
The first element of the reversed vector is 2.
crend
Returnerar en const
omvänd iterator som pekar på elementet efter det sista elementet i den omvända vektorn.
const_reverse_iterator crend() const;
Returvärde
En const
omvänd iterator för den omvända vektorn. Den pekar på elementet som följer det sista elementet i den omvända vektorn, som är samma som elementet före det första elementet i den icke-omvända vektorn. Det elementet är en platshållare och bör inte avrefereras. Använd den endast för jämförelser.
Anmärkningar
crend
används med omvända vector
precis som vector::cend
används med en vector
.
Med returvärdet för crend
(lämpligt minskas) kan vector
-objektet inte ändras.
crend
kan användas för att testa om en omvänd iterator har nått slutet av sin vector
.
Värdet som returneras av crend
ska inte derefereras. Använd den endast för jämförelser.
Exempel
// vector_crend.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::const_reverse_iterator v1_rIter;
v1.push_back(1);
v1.push_back(2);
for (v1_rIter = v1.rbegin(); v1_rIter != v1.rend(); v1_rIter++)
cout << *v1_rIter << endl;
}
2
1
data
Returnerar en pekare till det första elementet i vektorn.
const_pointer data() const;
pointer data();
Returvärde
En pekare till det första elementet i vector
eller till platsen som lyckas med en tom vector
.
Exempel
// vector_data.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> c1;
vector<int>::pointer c1_ptr;
vector<int>::const_pointer c1_cPtr;
c1.push_back(1);
c1.push_back(2);
cout << "The vector c1 contains elements:";
c1_cPtr = c1.data();
for (size_t n = c1.size(); 0 < n; --n, c1_cPtr++)
{
cout << " " << *c1_cPtr;
}
cout << endl;
cout << "The vector c1 now contains elements:";
c1_ptr = c1.data();
*c1_ptr = 20;
for (size_t n = c1.size(); 0 < n; --n, c1_ptr++)
{
cout << " " << *c1_ptr;
}
cout << endl;
}
The vector c1 contains elements: 1 2
The vector c1 now contains elements: 20 2
difference_type
En typ som ger skillnaden mellan två iteratorer som refererar till element inom samma vektor.
typedef typename Allocator::difference_type difference_type;
Anmärkningar
En difference_type
kan också beskrivas som antalet element mellan två pekare, eftersom en pekare till ett element innehåller dess adress.
En iterator används oftare för att komma åt ett vektorelement.
Exempel
// vector_diff_type.cpp
// compile with: /EHsc
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
using namespace std;
vector<int> c1;
vector<int>::iterator c1_Iter, c2_Iter;
c1.push_back(30);
c1.push_back(20);
c1.push_back(30);
c1.push_back(10);
c1.push_back(30);
c1.push_back(20);
c1_Iter = c1.begin();
c2_Iter = c1.end();
vector<int>::difference_type df_typ1, df_typ2, df_typ3;
df_typ1 = count(c1_Iter, c2_Iter, 10);
df_typ2 = count(c1_Iter, c2_Iter, 20);
df_typ3 = count(c1_Iter, c2_Iter, 30);
cout << "The number '10' is in c1 collection " << df_typ1 << " times.\n";
cout << "The number '20' is in c1 collection " << df_typ2 << " times.\n";
cout << "The number '30' is in c1 collection " << df_typ3 << " times.\n";
}
The number '10' is in c1 collection 1 times.
The number '20' is in c1 collection 2 times.
The number '30' is in c1 collection 3 times.
emplace
Infogar ett element som är konstruerat på plats i vektorn vid en angiven position.
template <class... Types>
iterator emplace(
const_iterator position,
Types&&... args);
Parametrar
position
Positionen i vector
där det första elementet infogas.
args
Konstruktorargument. Funktionen härleder vilken konstruktoröverlagring som ska anropas baserat på de angivna argumenten.
Returvärde
Funktionen returnerar en iterator som pekar på positionen där det nya elementet infogades i vector
.
Anmärkningar
Alla infogningsåtgärder kan vara dyra, se vector
klass för en diskussion om vector
prestanda.
Exempel
// vector_emplace.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator Iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// initialize a vector of vectors by moving v1
vector<vector<int>> vv1;
vv1.emplace(vv1.begin(), move(v1));
if (vv1.size() != 0 && vv1[0].size() != 0)
{
cout << "vv1[0] =";
for (Iter = vv1[0].begin(); Iter != vv1[0].end(); Iter++)
cout << " " << *Iter;
cout << endl;
}
}
v1 = 10 20 30
vv1[0] = 10 20 30
emplace_back
Lägger till ett element som är konstruerat på plats i slutet av vektorn.
template <class... Types>
void emplace_back(Types&&... args);
Parametrar
args
Konstruktorargument. Funktionen härleder vilken konstruktoröverlagring som ska anropas baserat på de angivna argumenten.
Exempel
#include <vector>
struct obj
{
obj(int, double) {}
};
int main()
{
std::vector<obj> v;
v.emplace_back(1, 3.14); // obj in created in place in the vector
}
empty
Testar om vektorn är tom.
bool empty() const;
Returvärde
true
om vektorn är tom; false
om vektorn inte är tom.
Exempel
// vector_empty.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
if (v1.empty())
cout << "The vector is empty." << endl;
else
cout << "The vector is not empty." << endl;
}
The vector is not empty.
end
Returnerar en tidigare iterator som pekar på elementet som följer det sista elementet i vektorn.
iterator end();
const_iterator end() const;
Returvärde
En tidigare iterator för vektorn. Den pekar på elementet som följer det sista elementet i vektorn. Det elementet är en platshållare och bör inte avrefereras. Använd den endast för jämförelser. Om vektorn är tom vector::end() == vector::begin()
.
Anmärkningar
Om returvärdet för end
tilldelas till en variabel av typen const_iterator
kan vektorobjektet inte ändras. Om returvärdet för end
tilldelas till en variabel av typen iterator
kan vektorobjektet ändras.
Exempel
// vector_end.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator v1_Iter;
v1.push_back(1);
v1.push_back(2);
for (v1_Iter = v1.begin(); v1_Iter != v1.end(); v1_Iter++)
cout << *v1_Iter << endl;
}
1
2
erase
Tar bort ett element eller ett område med element i en vektor från angivna positioner.
iterator erase(
const_iterator position);
iterator erase(
const_iterator first,
const_iterator last);
Parametrar
position
Positionen för elementet som ska tas bort från vektorn.
first
Positionen för det första elementet som tagits bort från vektorn.
last
Placera precis utanför det sista elementet som tagits bort från vektorn.
Returvärde
En iterator som anger det första elementet som återstår utöver alla element som tas bort, eller en pekare till slutet av vektorn om det inte finns något sådant element.
Exempel
// vector_erase.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator Iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
v1.erase(v1.begin());
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
v1.erase(v1.begin() + 1, v1.begin() + 3);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
}
v1 = 10 20 30 40 50
v1 = 20 30 40 50
v1 = 20 50
front
Returnerar en referens till det första elementet i en vektor.
reference front();
const_reference front() const;
Returvärde
En referens till det första elementet i vektorobjektet. Om vektorn är tom är returen odefinierad.
Anmärkningar
Om returvärdet för front
tilldelas till en const_reference
kan vektorobjektet inte ändras. Om returvärdet för front
tilldelas till en reference
kan vektorobjektet ändras.
När du kompileras med hjälp av _ITERATOR_DEBUG_LEVEL
definierat som 1 eller 2 uppstår ett körningsfel om du försöker komma åt ett element i en tom vektor. Mer information finns i Kontrollerade iteratorer.
Exempel
// vector_front.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(11);
int& i = v1.front();
cout << "The first integer of v1 is " << i << endl;
// by incrementing i, we move the front reference to the second element
i++;
cout << "Now, the first integer of v1 is " << i << endl;
}
The first integer of v1 is 10
Now, the first integer of v1 is 11
get_allocator
Returnerar en kopia av allokeringsobjektet som används för att konstruera vektorn.
Allocator get_allocator() const;
Returvärde
Allokeraren som används av vektorn.
Anmärkningar
Allokerare för vektorklassen anger hur klassen hanterar lagring. Standardallokeringsprogrammen som levereras med C++ Standard Library-containerklasser räcker för de flesta programmeringsbehov. Att skriva och använda din egen allokeringsklass är en avancerad C++-funktion.
Exempel
// vector_get_allocator.cpp
// compile with: /EHsc
#include <vector>
int main()
{
using namespace std;
// The following lines declare objects that use the default allocator.
vector<int> v1;
vector<int, allocator<int>> v2 = vector<int, allocator<int>>(allocator<int>());
// v3 will use the same allocator class as v1
vector<int> v3(v1.get_allocator());
vector<int>::allocator_type xvec = v3.get_allocator();
// You can now call functions on the allocator class used by vec
}
insert
Infogar ett element, eller många element eller ett område med element i vektorn vid en angiven position.
iterator insert(
const_iterator position,
const Type& value);
iterator insert(
const_iterator position,
Type&& value);
void insert(
const_iterator position,
size_type count,
const Type& value);
template <class InputIterator>
void insert(
const_iterator position,
InputIterator first,
InputIterator last);
Parametrar
position
Positionen i vektorn där det första elementet infogas.
value
Värdet för elementet som infogas i vektorn.
count
Antalet element som infogas i vektorn.
first
Positionen för det första elementet i området med element som ska kopieras.
last
Positionen för det första elementet utöver det område av element som ska kopieras.
Returvärde
De två första insert
-funktionerna returnerar en iterator som pekar på positionen där det nya elementet infogades i vektorn.
Anmärkningar
Som en förutsättning får first
och last
inte vara iteratorer i vektorn, eller så är beteendet odefinierat. Alla infogningsåtgärder kan vara dyra, se vector
klass för en diskussion om vector
prestanda.
Exempel
// vector_insert.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator Iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
v1.insert(v1.begin() + 1, 40);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
v1.insert(v1.begin() + 2, 4, 50);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
const auto v2 = v1;
v1.insert(v1.begin() + 1, v2.begin() + 2, v2.begin() + 4);
cout << "v1 =";
for (Iter = v1.begin(); Iter != v1.end(); Iter++)
cout << " " << *Iter;
cout << endl;
// initialize a vector of vectors by moving v1
vector<vector<int>> vv1;
vv1.insert(vv1.begin(), move(v1));
if (vv1.size() != 0 && vv1[0].size() != 0)
{
cout << "vv1[0] =";
for (Iter = vv1[0].begin(); Iter != vv1[0].end(); Iter++)
cout << " " << *Iter;
cout << endl;
}
}
v1 = 10 20 30
v1 = 10 40 20 30
v1 = 10 40 50 50 50 50 20 30
v1 = 10 50 50 40 50 50 50 50 20 30
vv1[0] = 10 50 50 40 50 50 50 50 20 30
iterator
En typ som ger en iterator med slumpmässig åtkomst som kan läsa eller ändra alla element i en vektor.
typedef implementation-defined iterator;
Anmärkningar
En typ iterator
kan användas för att ändra värdet för ett element.
Exempel
Se exemplet för begin
.
max_size
Returnerar vektorns maximala längd.
size_type max_size() const;
Returvärde
Den maximala möjliga längden på vektorn.
Exempel
// vector_max_size.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::size_type i;
i = v1.max_size();
cout << "The maximum possible length of the vector is " << i << "." << endl;
}
The maximum possible length of the vector is 4611686018427387903.
operator[]
Returnerar en referens till vektorelementet vid en angiven position.
reference operator[](size_type position);
const_reference operator[](size_type position) const;
Parametrar
position
Vektorelementets position.
Returvärde
Om den angivna positionen är större än eller lika med containerns storlek är resultatet odefinierat.
Anmärkningar
Om returvärdet för operator[]
tilldelas till en const_reference
kan vektorobjektet inte ändras. Om returvärdet för operator[]
tilldelas till en referens kan vektorobjektet ändras.
När du kompileras med hjälp av _ITERATOR_DEBUG_LEVEL
definierat som 1 eller 2 uppstår ett körningsfel om du försöker komma åt ett element utanför vektorns gränser. Mer information finns i Kontrollerade iteratorer.
Exempel
// vector_op_ref.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
int& i = v1[1];
cout << "The second integer of v1 is " << i << endl;
}
The second integer of v1 is 20
operator=
Ersätter elementen i vektorn med en kopia av en annan vektor.
vector& operator=(const vector& right);
vector& operator=(vector&& right);
Parametrar
right
Den vector
som kopieras till vector
.
Anmärkningar
När du har raderat befintliga element i en vector
operator=
antingen kopierar eller flyttar innehållet i right
till vector
.
Exempel
// vector_operator_as.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1, v2, v3;
vector<int>::iterator iter;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
v1.push_back(50);
cout << "v1 = ";
for (iter = v1.begin(); iter != v1.end(); iter++)
cout << *iter << " ";
cout << endl;
v2 = v1;
cout << "v2 = ";
for (iter = v2.begin(); iter != v2.end(); iter++)
cout << *iter << " ";
cout << endl;
// move v1 into v2
v2.clear();
v2 = move(v1);
cout << "v2 = ";
for (iter = v2.begin(); iter != v2.end(); iter++)
cout << *iter << " ";
cout << endl;
}
v1 = 10 20 30 40 50
v2 = 10 20 30 40 50
v2 = 10 20 30 40 50
pointer
En typ som ger en pekare till ett element i en vektor.
typedef typename Allocator::pointer pointer;
Anmärkningar
En typ pointer
kan användas för att ändra värdet för ett element.
Exempel
// vector_pointer.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v;
v.push_back(11);
v.push_back(22);
vector<int>::pointer ptr = &v[0];
cout << *ptr << endl;
ptr++;
cout << *ptr << endl;
*ptr = 44;
cout << *ptr << endl;
}
11
22
44
pop_back
Tar bort elementet i slutet av vektorn.
void pop_back();
Anmärkningar
Ett kodexempel finns i vector::p ush_back().
push_back
Lägger till ett element i slutet av vektorn.
void push_back(const T& value);
void push_back(T&& value);
Parametrar
value
Värdet som ska tilldelas till elementet som läggs till i slutet av vektorn.
Exempel
// compile with: /EHsc /W4
#include <vector>
#include <iostream>
using namespace std;
template <typename T>
void print_elem(const T& t)
{
cout << "(" << t << ") ";
}
template <typename T>
void print_collection(const T& t)
{
cout << " " << t.size() << " elements: ";
for (const auto& p : t)
{
print_elem(p);
}
cout << endl;
}
int main()
{
vector<int> v;
for (int i = 0; i < 10; ++i)
{
v.push_back(10 + i);
}
cout << "vector data: " << endl;
print_collection(v);
// pop_back() until it's empty, printing the last element as we go
while (v.begin() != v.end())
{
cout << "v.back(): ";
print_elem(v.back());
cout << endl;
v.pop_back();
}
}
vector data:
10 elements: (10) (11) (12) (13) (14) (15) (16) (17) (18) (19)
v.back(): (19)
v.back(): (18)
v.back(): (17)
v.back(): (16)
v.back(): (15)
v.back(): (14)
v.back(): (13)
v.back(): (12)
v.back(): (11)
v.back(): (10)
rbegin
Returnerar en iterator till det första elementet i en omvänd vektor.
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Returvärde
En omvänd iterator för slumpmässig åtkomst som adresserar det första elementet i en omvänd vektor eller som behandlar vad som var det sista elementet i den oreverserade vektorn.
Anmärkningar
Om returvärdet för rbegin
tilldelas till en const_reverse_iterator
kan vektorobjektet inte ändras. Om returvärdet för rbegin
tilldelas till en reverse_iterator
kan vektorobjektet ändras.
Exempel
// vector_rbegin.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::iterator v1_Iter;
vector<int>::reverse_iterator v1_rIter;
v1.push_back(1);
v1.push_back(2);
v1_Iter = v1.begin();
cout << "The first element of vector is "
<< *v1_Iter << "." << endl;
v1_rIter = v1.rbegin();
cout << "The first element of the reversed vector is "
<< *v1_rIter << "." << endl;
}
The first element of vector is 1.
The first element of the reversed vector is 2.
reference
En typ som ger en referens till ett element som lagras i en vektor.
typedef typename Allocator::reference reference;
Exempel
Se at
för ett exempel på hur du använder reference
i vektorklassen.
rend
Returnerar en omvänd iterator som pekar på elementet efter det sista elementet i den omvända vektorn.
const_reverse_iterator rend() const;
reverse_iterator rend();
Returvärde
En omvänd iterator för den omvända vektorn. Den pekar på elementet som följer det sista elementet i den omvända vektorn, som är samma som elementet före det första elementet i den icke-omvända vektorn. Det elementet är en platshållare och bör inte avrefereras. Använd den endast för jämförelser.
Anmärkningar
rend
används med en omvänd vektor precis som end
används med en vektor.
Om returvärdet för rend
tilldelas till en const_reverse_iterator
kan vektorobjektet inte ändras. Om returvärdet för rend
tilldelas till en reverse_iterator
kan vektorobjektet ändras.
rend
kan användas för att testa om en omvänd iterator har nått slutet av sin vektor.
Värdet som returneras av rend
ska inte derefereras. Använd den endast för jämförelser.
Exempel
// vector_rend.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::reverse_iterator v1_rIter;
v1.push_back(1);
v1.push_back(2);
for (v1_rIter = v1.rbegin(); v1_rIter != v1.rend(); v1_rIter++)
cout << *v1_rIter << endl;
}
2
1
reserve
Reserverar en minsta lagringslängd för ett vektorobjekt och allokerar utrymme om det behövs.
void reserve(size_type count);
Parametrar
count
Den minsta lagringslängd som ska allokeras för vektorn.
Exempel
// vector_reserve.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(1);
cout << "Current capacity of v1 = "
<< v1.capacity() << endl;
v1.reserve(20);
cout << "Current capacity of v1 = "
<< v1.capacity() << endl;
}
Current capacity of v1 = 1
Current capacity of v1 = 20
resize
Anger en ny storlek för en vektor.
void resize(size_type new_size);
void resize(size_type new_size, Type value);
Parametrar
new_size
Den nya storleken på vektorn.
value
Initieringsvärdet för nya element har lagts till i vektorn om den nya storleken är större än den ursprungliga storleken. Om värdet utelämnas använder de nya objekten sin standardkonstruktor.
Anmärkningar
Om containerns storlek är mindre än den begärda storleken new_size
resize
lägger till element i vektorn tills den når den begärda storleken. När containerns storlek är större än den begärda storleken tar resize
bort elementen närmast slutet av containern tills den når storleken new_size
. Ingen åtgärd vidtas om containerns nuvarande storlek är samma som den begärda storleken.
size
återspeglar vektorns aktuella storlek.
Exempel
// vectorsizing.cpp
// compile with: /EHsc /W4
// Illustrates vector::reserve, vector::max_size,
// vector::resize, vector::resize, and vector::capacity.
//
// Functions:
//
// vector::max_size - Returns maximum number of elements vector could
// hold.
//
// vector::capacity - Returns number of elements for which memory has
// been allocated.
//
// vector::size - Returns number of elements in the vector.
//
// vector::resize - Reallocates memory for vector, preserves its
// contents if new size is larger than existing size.
//
// vector::reserve - Allocates elements for vector to ensure a minimum
// size, preserving its contents if the new size is
// larger than existing size.
//
// vector::push_back - Appends (inserts) an element to the end of a
// vector, allocating memory for it if necessary.
//
//////////////////////////////////////////////////////////////////////
// The debugger cannot handle symbols more than 255 characters long.
// The C++ Standard Library often creates symbols longer than that.
// The warning can be disabled:
//#pragma warning(disable:4786)
#include <iostream>
#include <vector>
#include <string>
using namespace std;
template <typename C>
void print(const string& s, const C& c)
{
cout << s;
for (const auto& e : c)
{
cout << e << " ";
}
cout << endl;
}
void printvstats(const vector<int>& v)
{
cout << " the vector's size is: " << v.size() << endl;
cout << " the vector's capacity is: " << v.capacity() << endl;
cout << " the vector's maximum size is: " << v.max_size() << endl;
}
int main()
{
// declare a vector that begins with 0 elements.
vector<int> v;
// Show statistics about vector.
cout << "After declaring an empty vector:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
// Add one element to the end of the vector.
v.push_back(-1);
cout << endl << "After adding an element:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
for (int i = 1; i < 10; ++i)
{
v.push_back(i);
}
cout << endl << "After adding 10 elements:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
v.resize(6);
cout << endl << "After resizing to 6 elements without an initialization value:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
v.resize(9, 999);
cout << endl << "After resizing to 9 elements with an initialization value of 999:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
v.resize(12);
cout << endl << "After resizing to 12 elements without an initialization value:" << endl;
printvstats(v);
print(" the vector's contents: ", v);
// Ensure there's room for at least 1000 elements.
v.reserve(1000);
cout << endl << "After vector::reserve(1000):" << endl;
printvstats(v);
// Ensure there's room for at least 2000 elements.
v.resize(2000);
cout << endl << "After vector::resize(2000):" << endl;
printvstats(v);
}
After declaring an empty vector:
the vector's size is: 0
the vector's capacity is: 0
the vector's maximum size is: 4611686018427387903
the vector's contents:
After adding an element:
the vector's size is: 1
the vector's capacity is: 1
the vector's maximum size is: 4611686018427387903
the vector's contents: -1
After adding 10 elements:
the vector's size is: 10
the vector's capacity is: 13
the vector's maximum size is: 4611686018427387903
the vector's contents: -1 1 2 3 4 5 6 7 8 9
After resizing to 6 elements without an initialization value:
the vector's size is: 6
the vector's capacity is: 13
the vector's maximum size is: 4611686018427387903
the vector's contents: -1 1 2 3 4 5
After resizing to 9 elements with an initialization value of 999:
the vector's size is: 9
the vector's capacity is: 13
the vector's maximum size is: 4611686018427387903
the vector's contents: -1 1 2 3 4 5 999 999 999
After resizing to 12 elements without an initialization value:
the vector's size is: 12
the vector's capacity is: 13
the vector's maximum size is: 4611686018427387903
the vector's contents: -1 1 2 3 4 5 999 999 999 0 0 0
After vector::reserve(1000):
the vector's size is: 12
the vector's capacity is: 1000
the vector's maximum size is: 4611686018427387903
After vector::resize(2000):
the vector's size is: 2000
the vector's capacity is: 2000
the vector's maximum size is: 4611686018427387903
reverse_iterator
En typ som ger en iterator med slumpmässig åtkomst som kan läsa eller ändra alla element i en omvänd vektor.
typedef std::reverse_iterator<iterator> reverse_iterator;
Anmärkningar
En typ reverse_iterator
används för att iterera genom vektorn i omvänd ordning.
Exempel
Se exemplet för rbegin
.
shrink_to_fit
Tar bort överkapacitet.
void shrink_to_fit();
Exempel
// vector_shrink_to_fit.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
v1.push_back(1);
cout << "Current capacity of v1 = "
<< v1.capacity() << endl;
v1.reserve(20);
cout << "Current capacity of v1 = "
<< v1.capacity() << endl;
v1.shrink_to_fit();
cout << "Current capacity of v1 = "
<< v1.capacity() << endl;
}
Current capacity of v1 = 1
Current capacity of v1 = 20
Current capacity of v1 = 1
size
Returnerar antalet element i vektorn.
size_type size() const;
Returvärde
Vektorns aktuella längd.
Exempel
// vector_size.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1;
vector<int>::size_type i;
v1.push_back(1);
i = v1.size();
cout << "Vector length is " << i << "." << endl;
v1.push_back(2);
i = v1.size();
cout << "Vector length is now " << i << "." << endl;
}
Vector length is 1.
Vector length is now 2.
size_type
En typ som räknar antalet element i en vektor.
typedef typename Allocator::size_type size_type;
Exempel
Se exemplet för capacity
.
swap
Utbyter elementen i två vektorer.
void swap(
vector<Type, Allocator>& right);
friend void swap(
vector<Type, Allocator>& left,
vector<Type, Allocator>& right);
Parametrar
right
En vektor som tillhandahåller de element som ska växlas. Eller en vektor vars element ska bytas ut med elementen i vektorn left
.
left
En vektor vars element ska bytas ut mot elementen i vektorn right
.
Exempel
// vector_swap.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int> v1, v2;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
v2.push_back(10);
v2.push_back(20);
cout << "The number of elements in v1 = " << v1.size() << endl;
cout << "The number of elements in v2 = " << v2.size() << endl;
cout << endl;
v1.swap(v2);
cout << "The number of elements in v1 = " << v1.size() << endl;
cout << "The number of elements in v2 = " << v2.size() << endl;
}
The number of elements in v1 = 3
The number of elements in v2 = 2
The number of elements in v1 = 2
The number of elements in v2 = 3
value_type
En typ som representerar datatypen som lagras i en vektor.
typedef typename Allocator::value_type value_type;
Anmärkningar
value_type
är synonymt med mallparametern Type
.
Exempel
// vector_value_type.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int>::value_type AnInt;
AnInt = 44;
cout << AnInt << endl;
}
44
vector
Konstruerar en vektor. Överlagringar konstruerar en vektor med en viss storlek eller med element av ett visst värde. Eller som en kopia av hela eller delar av någon annan vektor. Vissa överlagringar gör också att du kan ange allokeraren som ska användas.
vector();
explicit vector(const Allocator& allocator);
explicit vector(size_type count);
vector(size_type count, const Type& value);
vector(size_type count, const Type& value, const Allocator& allocator);
vector(const vector& source);
vector(vector&& source);
vector(initializer_list<Type> init_list, const Allocator& allocator);
template <class InputIterator>
vector(InputIterator first, InputIterator last);
template <class InputIterator>
vector(InputIterator first, InputIterator last, const Allocator& allocator);
Parametrar
allocator
Allokeringsklassen som ska användas med det här objektet.
get_allocator
returnerar allokeringsklassen för objektet.
count
Antalet element i den konstruerade vektorn.
value
Värdet för elementen i den konstruerade vektorn.
source
Den vektor som den konstruerade vektorn ska vara en kopia av.
first
Positionen för det första elementet i området med element som ska kopieras.
last
Positionen för det första elementet utanför det område med element som ska kopieras.
init_list
Den initializer_list
som innehåller de element som ska kopieras.
Anmärkningar
Alla konstruktorer lagrar ett allokeringsobjekt (allocator
) och initierar vektorn.
De två första konstruktorerna anger en tom inledande vektor. Den andra konstruktorn anger uttryckligen vilken allokeringstyp (allocator
) som ska användas.
Den tredje konstruktorn anger en upprepning av ett angivet tal (count
) av element i standardvärdet för klassen Type
.
Den fjärde och femte konstruktorn anger en upprepning av (count
) element av värdet value
.
Den sjätte konstruktorn anger en kopia av vektorn source
.
Den sjunde konstruktorn flyttar vektorn source
.
Den åttonde konstruktorn använder en initializer_list för att ange elementen.
De nionde och tionde konstruktorerna kopierar intervallet [first
, last
) för en vektor.
Exempel
// vector_ctor.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>
int main()
{
using namespace std;
vector<int>::iterator v1_Iter, v2_Iter, v3_Iter, v4_Iter, v5_Iter, v6_Iter;
// Create an empty vector v0
vector<int> v0;
// Create a vector v1 with 3 elements of default value 0
vector<int> v1(3);
// Create a vector v2 with 5 elements of value 2
vector<int> v2(5, 2);
// Create a vector v3 with 3 elements of value 1 and with the allocator
// of vector v2
vector<int> v3(3, 1, v2.get_allocator());
// Create a copy, vector v4, of vector v2
vector<int> v4(v2);
// Create a new temporary vector for demonstrating copying ranges
vector<int> v5(5);
for (auto i : v5)
{
v5[i] = i;
}
// Create a vector v6 by copying the range v5[ first, last)
vector<int> v6(v5.begin() + 1, v5.begin() + 3);
cout << "v1 =";
for (auto& v : v1)
{
cout << " " << v;
}
cout << endl;
cout << "v2 =";
for (auto& v : v2)
{
cout << " " << v;
}
cout << endl;
cout << "v3 =";
for (auto& v : v3)
{
cout << " " << v;
}
cout << endl;
cout << "v4 =";
for (auto& v : v4)
{
cout << " " << v;
}
cout << endl;
cout << "v5 =";
for (auto& v : v5)
{
cout << " " << v;
}
cout << endl;
cout << "v6 =";
for (auto& v : v6)
{
cout << " " << v;
}
cout << endl;
// Move vector v2 to vector v7
vector<int> v7(move(v2));
vector<int>::iterator v7_Iter;
cout << "v7 =";
for (auto& v : v7)
{
cout << " " << v;
}
cout << endl;
cout << "v8 =";
vector<int> v8{ { 1, 2, 3, 4 } };
for (auto& v : v8)
{
cout << " " << v;
}
cout << endl;
}
v1 = 0 0 0
v2 = 2 2 2 2 2
v3 = 1 1 1
v4 = 2 2 2 2 2
v5 = 0 0 0 0 0
v6 = 0 0
v7 = 2 2 2 2 2
v8 = 1 2 3 4
Se även
Trådsäkerhet i C++ Standard Library
C++ standardbiblioteksreferens