Could not understand use of auto

for(auto it=s1.begin();it!=s.end();it++){
cout<<(*it)<<endl;}

what this code is doing and how it is working