ข้อดี / ข้อเสียของการใช้auto
คำหลักโดยเฉพาะในลูปคืออะไร
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->??
}
ดูเหมือนว่าถ้าคุณไม่รู้ว่าคุณมีตัววนซ้ำสำหรับแผนที่หรือเวกเตอร์คุณจะไม่รู้ว่าจะใช้หรือไม่ first
หรือsecond
เข้าถึงคุณสมบัติของวัตถุโดยตรงหรือไม่?
สิ่งนี้ทำให้ฉันนึกถึงการโต้วาที C # ว่าจะใช้คำหลักvar
หรือไม่ ความประทับใจที่ฉันได้รับจนถึงขณะนี้คือในโลกคน C ++ พร้อมที่จะใช้auto
คำหลักที่มีการต่อสู้น้อยกว่าvar
ในโลก C # สำหรับฉันสัญชาตญาณแรกของฉันคือฉันชอบที่จะรู้ชนิดของตัวแปรเพื่อที่ฉันจะได้รู้ว่าการดำเนินการใดที่ฉันคาดหวังว่าจะสามารถทำได้
for (auto& it : x)
(หรือไม่มีการอ้างอิงหากคุณต้องการคัดลอก)
x
และคุณไม่ได้รู้ว่าสิ่งx
คือคุณไม่ควรเขียนห่วงว่าในสถานที่แรก ;-)
var
หรือไม่? ฉันคิดถึงสิ่งนั้น