动态的二维数组的创建与停止

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42310470/article/details/89060222

标题 基于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;
}

猜你喜欢

转载自blog.csdn.net/qq_42310470/article/details/89060222