如何获取整数直到 \n 为 n 行
How to get integers until \n for n number of lines
我的输入:
第一个输入是输入将包含的行数
5
7 3 29 0
3 4 3
2 3 4 55 5
2 3
1 2 33 4 5
我的问题是如何将它们存储在向量的向量中..?
我的概念..
.
.
.
cin>>n;
vector<vector<int>>vec;
while(n--)
{
vector<int>vec2;
for(**Getting input until the line**){
vec2.emplace_back(input);}
vec.emplace_back(vec2)
}
我需要实现获取输入直到行。为此,我想将输入作为字符串并在将其转换为 c_string 后使用 strtok 将值存储在向量 vec2 中......但我需要知道是否有任何我可以有效地解决这个问题..
这是我的建议,YMMV。
- 将每一行读入一个字符串。
- 使用
istringstream
将字符串中的整数提取到向量中。
- 字符串处理后,
push_back
向量进入外层向量
unsigned int rows;
std::cin >> rows;
std::string text_row;
for (unsigned int i = 0U; i < rows; ++i)
{
std::getline(cin, text_row);
std::istringstream numbers_stream(text_row);
std::vector<int> row_data;
int number;
while (numbers_stream >> number)
{
row_data.push_back(number);
}
vec.push_back(row_data);
}
我的输入: 第一个输入是输入将包含的行数
5
7 3 29 0
3 4 3
2 3 4 55 5
2 3
1 2 33 4 5
我的问题是如何将它们存储在向量的向量中..?
我的概念..
.
.
.
cin>>n;
vector<vector<int>>vec;
while(n--)
{
vector<int>vec2;
for(**Getting input until the line**){
vec2.emplace_back(input);}
vec.emplace_back(vec2)
}
我需要实现获取输入直到行。为此,我想将输入作为字符串并在将其转换为 c_string 后使用 strtok 将值存储在向量 vec2 中......但我需要知道是否有任何我可以有效地解决这个问题..
这是我的建议,YMMV。
- 将每一行读入一个字符串。
- 使用
istringstream
将字符串中的整数提取到向量中。 - 字符串处理后,
push_back
向量进入外层向量
unsigned int rows;
std::cin >> rows;
std::string text_row;
for (unsigned int i = 0U; i < rows; ++i)
{
std::getline(cin, text_row);
std::istringstream numbers_stream(text_row);
std::vector<int> row_data;
int number;
while (numbers_stream >> number)
{
row_data.push_back(number);
}
vec.push_back(row_data);
}