标题 基于vector的二维动态向量的输入输出
刚刚参加了某为的笔试,结果被一个以前忽略的问题给卡住了,以前做的都是 固定N行N列或者动态一维数组输入,这次碰到一个动态2维大小输入,行列均是不确定大小的.不知道怎么停了,回去查阅了下资料,思考记录下这个细节,以后引以为戒,不要忽视细节…
方案一 遇到两个回车结束``
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector< vector<int>> a;
vector<int> b;
char d;
int c;
while (cin>>c) {
b.push_back(c);
d = getchar();
if (d =='\n') {
a.push_back(b);
b.clear();
d = getchar();
if (d == '\n')
break;
else {
b.push_back(int(d - '0'));
}
}
}
for (int i = 0; i < a.size(); i++) {
for (int j = 0; j < a[i].size(); j++)
{
cout << a[i][j] << " "; }
cout << endl;
}
cout << a.size() << " " << a[0].size();
return 0;
}
方案2 更简单的基于string为空判断
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<string> a;
string b;
while(getline(cin, b)) {
if(b.empty())
break;
a.push_back(b);
b.clear();
}
for (int i = 0; i < a.size(); i++)
cout << a[i] << endl;
return 0;
}