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>::reference, возвращающего vector<bool>::operator[], не может быть извлечен.
// 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