Tôi có một số std::vector
. Tôi kiểm tra kích thước của nó là 6 nhưng khi tôi cố gắng truy cập vec[6]
để kiểm tra xem nó sẽ cung cấp cho lỗi, tôi nhận được không có lỗi nhưng một số số thay thế. Nó có nên cho lỗi không?Vectơ ra khỏi giới hạn mà không đưa ra lỗi
chỉnh sửa: một cái gì đó như:
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
}
kích thước 6, vì vậy cuối cùng là 'vec [5]' bắt đầu bằng 0 – Bill
Không chắc chắn nơi bạn có ý tưởng rằng 'vectơ' sẽ ném một lỗi trên một chỉ mục không hợp lệ bằng cách sử dụng' toán tử [] '. Các tài liệu chắc chắn nói khác đi. –
'Lưu ý rằng phần tử đầu tiên có vị trí là 0 (không phải 1) .' - http://www.cplusplus.com/reference/vector/vector/operator[]/ – Bill