以下のコードのコメント部ここです1,2の部分のコードの意味が知りたいです、
itr - data.begin();は4と表示されますがそれがこの行とどう結びつくかがわかりません。
コメントのように//std::cout << --*itr << "\n";と編集して表示させてみると4と表示されましたのですがコメント部の1のコードは何の意味なのでしょうか?
2,for(auto x :data)なのですがautoは型推論でfor文はわかるのですがこの形式は見たことがないので検討が付きません教えてくれますでしょうか?

#include <iostream>
#include <cstdlib>
#include "conio.h"
#include <iomanip>
#include "math.h"
#include <list>
#include <sstream>
#include "Header.h"
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;


void view(vector<int> &v)
{
    unsigned int i = 0;
    for (; i < v.size(); i++)
    {       
        if ((i % 10) == 0)//9以上になったら改行
        {
            cout << "\n";
        }
        cout << "[" << setw(2) << i << "] " << setw(2)<<v[i] << " ";
    }
    cout << "\n\n\n\n";
    //cout << "-----------------\n\n\n\n";
}

int main() {

    vector<int> data{1,2,3,4,5,6,7,8,9,10};

    auto itr = data.begin();
    for (;;) {
        itr = std::find(itr, data.end(), 5);   //  要素5を検索
        if (itr == data.end())   //  発見できなかった場合
            break;
        std::cout << itr - data.begin() << "\n";   //  ここです。1
        //std::cout << --*itr << "\n"; 

        ++itr;      //  次の位置から検索
    }

    reverse(data.begin(),data.end());
    for (auto x : data)//ここです。2
    {
        cout << x << " ";
    }


    //view(data);






    _getch();
    return 0;
}