C++ これぞ参照の真骨頂!vector の要素を編集する

これは面白い!と思ったので記事にしてみる。
参照を使えばスマートに vector の要素を編集できる。

#include <iostream>
#include <vector>

using namespace std;

void TestFunc(vector<int>& v)
{
    for (int& x : v)
        ++x;
}

void PrintFunc(vector<int>& v)
{
    cout << "PrintFunc Start" << endl;
    for (int& x : v)
        cout << "v:" << x << endl;
}

int main()
{
    int ret = 0;
    vector<int> v = {1,2,3,4,5};

    PrintFunc(v);

    // vector の要素全てをインクリメント
    TestFunc(v);
    
    PrintFunc(v);

    return ret;
}
PrintFunc Start
v:1
v:2
v:3
v:4
v:5
PrintFunc Start
v:2
v:3
v:4
v:5
v:6

よく考えれば当然のことだが、目からウロコが落ちた。
vector の要素を直接編集できるってなんだか面白い。