У меня есть std::vector
. Я проверяю его размер, который равен 6, но когда я пытаюсь получить доступ к vec[6]
, чтобы проверить, выдаст ли он ошибку, я получаю не ошибку, а вместо этого какое-то число. Не должно ли выдавать ошибку?
редактировать: что-то вроде:
struct Element
{
std::vector<double> face;
};
int main()
{
Element elm;
.... // insert 6 elements into elm.face
std::cout << elm.face.size() << std::endl; // answer is 6
std::cout << elm.face[6] << std::endl; // answer is some number
}
vec[5]
начинается с 0 - person Bill   schedule 18.05.2013vector
вызовет ошибку в недопустимом индексе, используяoperator[]
. Документы определенно говорят об обратном. - person Ed S.   schedule 18.05.2013Notice that the first element has a position of 0 (not 1).
-- cplusplus.com/reference/vector/vector/operator[]< /а> - person Bill   schedule 18.05.2013[]
не реализована проверка границ? - person Koushik Shetty   schedule 18.05.2013at()
- person Ed S.   schedule 18.05.2013If the container size is greater than n, the function never throws exceptions (no-throw guarantee). Otherwise, the behavior is undefined.
-- та же ссылка, что и в моем предыдущем комментарии. - person Bill   schedule 18.05.2013