È possibile ottenere risultati identici utilizzando contenitori diversi in C++. Per esempio . .Che tipo viene utilizzato automaticamente per i contenitori?
std::array<int, 5> v = {1,2,3,4,5};
for(auto i : v)
std::cout << i << ", ";
o
std::vector<int> v = {1,2,3,4,5};
o
int v[] = {1,2,3,4,5};
ecc. .
Quindi quale contenitore utilizza auto
qui?
auto v = {1,2,3,4,5};
for(auto i : v)
std::cout << i << ", ";
'<< TYPE_DESC (v); auto v = {1,2,3,4,5}; '/' lvalue initializer_list 'Corretto. +1 –
Due piccole osservazioni: In senso stretto, 'initializer_list' non è un contenitore nel senso dello standard. Il tuo esempio funziona, perché lo standard definisce esplicitamente le dichiarazioni basate su ranghi di quella forma. A prima vista non esiste un'entità di tipo 'initializer_list'. Un tale oggetto viene introdotto implicitamente, quindi devi includere '', ma non puoi "vederlo". –
MWid