auto
Anahtar kelimeyi, özellikle döngüler için kullanmanın avantajları / dezavantajları nelerdir?
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->??
}
Eğer bir harita ya da bilemeyiz bir vektör için bir yineleyici sahip olup olmadığını bilmiyorsanız gibi görünüyor kullanımına olsun first
ya second
veya nesnenin sadece doğrudan erişim özellikleri, hayır?
Bu bana anahtar kelimenin kullanılıp kullanılmayacağına dair C # tartışmasını hatırlatıyor var
. Şimdiye kadar aldığım izlenim, C ++ dünyasında insanların C # dünyasından auto
daha az kavga ile anahtar kelimeyi benimsemeye hazır olmaları var
. Benim için ilk içgüdüm, değişkenin türünü bilmek istememdir, böylece üzerinde ne gibi işlemler yapmayı bekleyebilirim.
for (auto& it : x)
(veya kopyalamak istiyorsanız referans olmadan) kullanabilirsiniz
x
ve ne x
olduğunu bile bilmiyorsanız , o döngüyü ilk etapta
var
mu? Onu özledim.