我正在接受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]
.
哟可以从大小的矢量开始 ruleNum
vector <vector<string> > big(ruleNum);
Run Code Online (Sandbox Code Playgroud)
这将保留ruleNum
空vector<string>
元素.然后,您可以将元素推回到每个元素中,就像您在发布的示例中所做的那样.