vector<bool>::operator
Vrátí simulovaný odkaz na prvek vector<bool> v určené pozici.
vector<bool>::reference operator[](
size_type Pos
);
vector<bool>::const_reference operator[](
size_type Pos
) const;
Parametry
Parametr |
Popis |
Pos |
Pozice prvku vector<bool>. |
Vrácená hodnota
Objekt vector<bool>::reference nebo vector<bool>::const_reference, který obsahuje hodnotu indexovaného prvku.
Pokud je zadaná pozice větší nebo rovna velikosti kontejneru, výsledek je nedefinován.
Poznámky
Pokud kompilujete s množinou _ITERATOR_DEBUG_LEVEL, dojde k runtime chybě, pokud se pokusíte o přístup k prvku mimo hranice vektoru. Další informace naleznete v tématu Checked – iterátory.
Příklad
Tento příklad kódu ukazuje správné použití vector<bool>::operator[] a dvě časté chyby kódování, které jsou okomentovány.Tyto chyby způsobují další chyby, protože adresa objektu vector<bool>::reference, který je vracen vector<bool>::operator[], nemůže být přijata.
// cl.exe /EHsc /nologo /W4 /MTd
#include <vector>
#include <iostream>
int main()
{
using namespace std;
cout << boolalpha;
vector<bool> vb;
vb.push_back(true);
vb.push_back(false);
// bool* pb = &vb[1]; // conversion error - do not use
// bool& refb = vb[1]; // conversion error - do not use
bool hold = vb[1];
cout << "The second element of vb is " << vb[1] << endl;
cout << "The held value from the second element of vb is " << hold << endl;
// Note this doesn't modify hold.
vb[1] = true;
cout << "The second element of vb is " << vb[1] << endl;
cout << "The held value from the second element of vb is " << hold << endl;
}
Výstup
The second element of vb is false
The held value from the second element of vb is false
The second element of vb is true
The held value from the second element of vb is false
Požadavky
Hlavička: <vector>
Obor názvů: std