使用更少的代码行解析 cmd 输入

Parse cmd input with fewer lines of code

我可以用更少的代码行来做到这一点吗?

    string input;
    getline(cin, input);        
    istringstream ss(input);
    vector<int> v;
    int n;
    while (ss >> n)
    {
        v.push_back(n);
    }

编辑:我将问题编辑得更具体。

while 循环 - 从输入流读取并将值放入容器 - 可以替换为 std::copy

std::copy(std::istream_iterator<int>(ss), std::istream_iterator<int>(),
          std::back_inserter(v));

其中 std::istream_iterator<int>(ss) 表示输入的开始,std::istream_iterator<int>() 是输入的结束,最后 std::back_inserter(v) 是值的去向(执行 v.push_back() ).

尽管如此,请记住这会中断 non-numerical 输入。


另见 std::copy - Parameters

Parameters
first, last - the range of elements to copy
d_first - the beginning of the destination range.

std::back_inserter or rather std::back_insert_iterator