我试图用字符填充 C++ 中的二维 vector ,但是当我运行这段代码时,它以一行字符 (*..
) 结尾。
我怎样才能像这样填充 2D vector :
*.*
.**
#include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<char> > vec2D;
std::vector<char> rowV;
unsigned int row=2;
unsigned int col=3;
char c;
unsigned int temp=0;
while(temp!=col)
{
while(rowV.size()!=row)
{
std::cin>>c;
rowV.push_back(c);
}
vec2D.push_back(rowV);
++temp;
}
return 0;
}
最佳答案
每次插入后都要清空rowV
,否则会被填满,不会再添加其他字符。此外,row
应由 col
交换,反之亦然,否则您将获得 3x2(而不是 2x3)2D vector 。
while(temp!=row)
{
while(rowV.size()!=col)
{
std::cin>>c;
rowV.push_back(c);
}
vec2D.push_back(rowV);
rowV.clear(); // clear after inserting
++temp;
}
关于c++ - 在 C++ 中填充二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639428/