vector<bool>::operator[]
傳回在指定位置上 vector<bool> 項目的模擬參考。
vector<bool>::reference operator[](
size_type Pos
);
vector<bool>::const_reference operator[](
size_type Pos
) const;
參數
參數 |
描述 |
Pos |
vector<bool> 項目的位置。 |
傳回值
vector<bool>::reference 或 vector<bool>::const_reference 物件,包含索引項目的值。
如果指定的位置大於或等於容器大小,則結果是未定義。
備註
如果在 _ITERATOR_DEBUG_LEVEL 設定時編譯,當您嘗試存取在向量界限以外的項目時,會發生執行階段錯誤。如需詳細資訊,請參閱 已檢查的迭代器。
範例
這個程式碼範例會示範 vector<bool>::operator[] 的正確用法和兩個常見的程式碼錯誤 (已標記為註解)。 這些會造成錯誤,因為 vector<bool>::operator[] 所傳回 vector<bool>::reference 物件的位址無法採用。
// 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;
}
Output
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
需求
標頭:<vector>
命名空間: std