Apa pro / kontra untuk menggunakan autokata kunci, terutama untuk loop?
for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->something();
}
for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ )
{
it->second->something();
}
for(auto it = x.begin(); it != x.end(); it++ )
{
it->??
}
Sepertinya jika Anda tidak tahu apakah Anda memiliki iterator untuk peta atau vektor Anda tidak akan tahu apakah akan digunakan firstatau secondatau hanya langsung akses properti dari objek, tidak ada?
Ini mengingatkan saya pada perdebatan C # tentang apakah akan menggunakan kata kunci var. Kesan yang saya dapatkan sejauh ini adalah bahwa di dunia C ++ orang siap untuk mengadopsi autokata kunci dengan sedikit perkelahian daripada vardi dunia C #. Bagi saya insting pertama saya adalah saya suka mengetahui jenis variabelnya sehingga saya bisa tahu operasi apa yang dapat saya lakukan untuk melakukannya.
for (auto& it : x)(atau tanpa referensi jika Anda ingin menyalin)
xdan Anda bahkan tidak tahu apa xitu, Anda seharusnya tidak menulis loop itu di tempat pertama ;-)
var? Saya melewatkan itu.