我的輸入:第一個輸入是輸入將包含的行數
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);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句