Ho un std::vector
. Controllo la sua dimensione che è 6 ma quando provo ad accedere a vec[6]
per verificare se darà errore, non ottengo alcun errore ma un numero invece. Non dovrebbe dare un errore?Vector andando fuori dai limiti senza dare l'errore
edit: qualcosa di simile:
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
}
dimensioni 6, quindi l'ultimo è 'vec [5]' inizia con 0 – Bill
Non sai da dove ti sia venuta l'idea che 'vector' genererebbe un errore su un indice non valido usando' operator [] '. I documenti sicuramente dicono il contrario. –
'Si noti che il primo elemento ha una posizione di 0 (non 1) .' - http://www.cplusplus.com/reference/vector/vector/operator[]/ – Bill