Это новый пункт в языке, с которым, я думаю, мы будем бороться в течение многих лет.«Авто» запуска представляет не только проблему читабельности, с этого момента, когда вы столкнетесь с ним, вам придется тратить значительное время, пытаясь выяснить, что это такое (точно так же, как время, когда стажер назвал все переменные xyz :)), ноВы также потратите немало времени на уборку после легко возбудимых программистов, как тот, кто отвечал до меня.В примере, приведенном выше, я могу поспорить, что $ 1000 будет написано «для (auto it: s)», а не «для (auto & it: s)», в результате вызывая семантику перемещения там, где вы ее ожидаете, изменяя свою коллекцию внизу.
Другим примером проблемы является сам ваш вопрос.Вы явно не очень много знаете об итераторах stl и пытаетесь преодолеть этот пробел, используя магию 'auto', в результате вы создаете код, который может быть проблематичным позже