我想存储属于某个数字的名称,并将所有这些存储在一个数组中。我正在读一个看起来像这样的文件:
1 Alan Ed
2 Eric Sara Lisa Dave
3 Amanda
4 Trevor Juliet Brad
我基本上想要一个数组数组,其中我在索引1,2,3,4处存储了一个名字数组。这是怎么做到的?我知道有几种方法,我正在寻找一个简单的方法。
答案 0 :(得分:4)
将std::getline()
的输入解析为行字符串,将每个行字符串由std::strinstream
的提取器解析为名称字符串,使用std::vector<std::string>::push_back()
将名称字符串附加到行条目中,通过以下方式收集行条目另一个std::vector<std::vector<std::string>>
。
像这样,加减语法错误:
vector<vector<string>> result;
istream& is = cin;
while (!is.eof())
{
string ls;
getline(is, ls);
istringstream line_ss(ls);
result.emplace_back();
while (line_ss.good())
{
string name;
line_ss >> name;
result.back().push_back(name);
}
}
P.S。指数为0,1,2,3。如果确实需要它们为1,2,3,4,请改用std :: map。