Apa pro / kontra untuk menggunakan auto
kata 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 first
atau second
atau 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 auto
kata kunci dengan sedikit perkelahian daripada var
di 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)
x
dan Anda bahkan tidak tahu apa x
itu, Anda seharusnya tidak menulis loop itu di tempat pertama ;-)
var
? Saya melewatkan itu.