std::begin
e std::end
conoscere l'inizio e la fine di uno container
o uno array
.In che modo std :: end conosce la fine di un array?
È così facile conoscere end
e begin
di un vector
ad esempio perché è una classe che fornisce queste informazioni. Ma come si conosce la fine di un array
come il seguente?
int simple_array[5]{1, 2, 3, 4, 5};
auto beg=std::begin(simple_array);
auto en=std::end(simple_array);
std::begin
non è difficile sapere da dove cominciare la matrice. Ma come fa a sapere dove finisce? Il numero intero costante 5
verrà memorizzato da qualche parte?
Apprezzerei se avessi una risposta con alcune informazioni di basso livello.
Grazie, sembra che mi siano perse molte cose .. Dovrei davvero chiedere "Che cos'è un array? .. intendi che l'array è una sorta di piccola classe con un puntatore all'inizio e un numero di elementi? potresti indicarmi a sth che posso leggere in dettaglio? –
Due matrici dello stesso tipo di base ma con diverse lunghezze sono ancora due tipi completamente diversi. 'int [3]' non è lo stesso di 'int [2]'. Il decadimento delle matrici, tuttavia, ti porterebbe un 'int * 'in entrambi i casi. Leggi [Come utilizzare gli array in C++?] (Http://stackoverflow.com/q/4810664/183120), se vuoi saperne di più sugli array. – legends2k
sì, questo è esattamente ciò che concludo dalla tua risposta. grazie ancora –