如何在矢量向量上推迟?

Mas*_*der 10 c++ vector

我正在接受20行输入.我想用空格分隔每一行的内容并将其放入向量向量中.如何制作矢量矢量?我正在努力推回它......

我的输入文件:

Mary had a little lamb
lalala up the hill
the sun is up
Run Code Online (Sandbox Code Playgroud)

矢量应该看起来像这样.

ROW 0: {"Mary","had", "a","little","lamb"}
ROW 1: {"lalala","up","the","hill"}
Run Code Online (Sandbox Code Playgroud)

这是我的代码......

string line; 
vector <vector<string> > big;
string buf;
for (int i = 0; i < 20; i++){
    getline(cin, line);
    stringstream ss(line);

    while (ss >> buf){
        (big[i]).push_back(buf);
    }
}
Run Code Online (Sandbox Code Playgroud)

pad*_*ddy 13

代码是正确的,但是你的向量中没有元素,所以你无法访问big[i].

在构造函数中设置循环前的向量大小,或者像这样:

big.resize(ruleNum);
Run Code Online (Sandbox Code Playgroud)

或者,您可以在每个循环步骤中推送一个空向量:

big.push_back( vector<string>() );
Run Code Online (Sandbox Code Playgroud)

你不需要围绕括号big[i].


jua*_*nza 5

哟可以从大小的矢量开始 ruleNum

vector <vector<string> > big(ruleNum);
Run Code Online (Sandbox Code Playgroud)

这将保留ruleNumvector<string>元素.然后,您可以将元素推回到每个元素中,就像您在发布的示例中所做的那样.