C++的cin怎么输入一个矩阵?

例如输入:
1 2 3
4 5 6
怎么用cin输入,最好能保存为vector>类型的二维向量。

 #include <iostream>
#include <sstream>
#include <vector>
#include <string>

using namespace std;

void input_vector (vector<vector<int>>&);

int main ()
{
    vector<vector<int>> vec;
    input_vector (vec);
    vector<vector<int>>::iterator it = vec.begin ();
    for (; it != vec.end (); ++it) {
        vector<int>::iterator i = it->begin ();
        while (i != it->end ()) {
            cout << *i++ << " ";
        }
        cout << endl;
    }
    return 0;
}

void input_vector (vector<vector<int> >& vec)
{
    vector<int> v;
    while (!cin.eof()) {
        int tmp(0);
        v.clear ();
        string line;
        getline(cin, line);
        istringstream ss(line);
        while (ss>>tmp) {
            v.push_back (tmp);
        }
        vec.push_back (v);
    }
}

按行输入,然后一行数据,自己在用空格等分割截取各个元素

输入Ctrl-z表示输入结束

感谢各位大神,我就不一一回复了