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>::referencevector<bool>::const_reference 对象。

如果指定的位置大于或等于容器大小,则结果为 undefined。

备注

在使用 _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;
}

输出

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

请参见

参考

vector<bool> 类

标准模板库