c++ sort排序二维数组之后结果未自动保存的问题

LeetCode 1128,

题目链接

https://leetcode.com/problems/number-of-equivalent-domino-pairs/

class Solution {
public:
    int numEquivDominoPairs(vector<vector<int>>& dominoes) {
        int ret = 0;
        for (auto i : dominoes) {
            sort(i.begin(), i.end());
            cout << i[0] << i[1] << endl;   // 输出1
        }
        for (int i = 0; i < dominoes.size() - 1; ++i) {
            for (int j = i + 1; j < dominoes.size(); ++j) {
                cout << dominoes[i][0] << dominoes[i][1] << endl;  // 输出2
                cout << dominoes[j][0] << dominoes[j][1] << endl;
                if (dominoes[i] == dominoes[j]) {
                    ret++;
                }
            }
        }
        return ret;
    }
};

int main() {
    vector<vector<int>> vec = { {1,2}, {2,1} };
    Solution s;
    cout << s.numEquivDominoPairs(vec) << endl;
    return 0;
}

对二维数组的每一行进行排序,所以上面输出1的结果是12和12,但是在输出2的结果却是12和21,有没有大佬能解释一下为什么?

for (auto i : dominoes)  
->
for (auto& i : dominoes)  

图片说明