Articles

Array index out of bounds-c++ Forum

vectori au o mulțime de lucruri bune merge pentru ei.
dar matricele C++, dacă se utilizează o compilare standard forțată, trebuie să aibă o dimensiune cunoscută la momentul compilării (nu poate fi o variabilă, doar o valoare cunoscută a timpului de compilare, cum ar fi enum, const int, număr literal etc.) Ar trebui să știți întotdeauna dimensiunea matrice și nu a alerga afară de limitele pe ea din cauza asta. Deci, în timp ce ar trebui să favorizați vectorii în general, uneori veți moșteni codul care are matrice sau trebuie să aveți de-a face cu un fișier C în compilația dvs. sau altele asemenea, deci trebuie să cunoașteți elementele de bază. De obicei, dimensiunea este un enum sau const undeva cu un nume pe care îl puteți utiliza atunci când looping să-l păstrați în siguranță. Dacă utilizați matrice pentru orice motiv, utilizați această idee și veți evita cele mai multe probleme în afara limitelor. Celelalte probleme se pot întâmpla și pe vectori – cei în care ați calculat indexul și l-ați prostit, dar vectorii vă oferă instrumentele pentru a verifica acest lucru, în timp ce matricele au mai puține opțiuni pentru gestionarea erorilor.
C++ este un limbaj de înaltă performanță. Nu face muncă inutilă în culise în general, trebuie să o faci dacă vrei. Deci, dacă doriți verificarea limitelor, aveți nevoie de cod pentru a face acest lucru. apropo, puteți ieși din limite și pe un vector.
vector<int>duh = {1,2,3};
cout<< duh; //în afara limitelor. accident, cel mai probabil.
nu este faptul că vectorul este verificarea limitelor sau ‘mai sigur’ atunci când o dai în bară. Sa că are propria variabilă dimensiunea gestionate astfel încât încurc ar trebui să fie mai greu, dacă sunteți scris codul cu atenție.