C++学习笔记(七)输入不定长度二维数组
被一个看似简单的问题困扰一个晚上,对于C++中数组的使用,这里要讨论的是如何利用cin及相关函数从荧屏上将从键盘输入的整数储存到数组中,对于长度已知的数组,可以很容易地开辟数组,而对于长度未知的数组,则一方面可以采用动态分配长度的数组空间实现,另一方面可以采用STL模板库中的vector容器。下面介绍后一种方法: 例如要开辟以下空间则可以使用vector> ,代码
·
被一个看似简单的问题困扰一个晚上,对于C++中数组的使用,这里要讨论的是如何利
用cin及相关函数从荧屏上将从键盘输入的整数储存到数组中,对于长度已知的数组,可以很容易地开辟数组,而对于长度未知的数组,则一方面可以采用动态分配长度的数组空间实现,另一方面可以采用STL模板库中的vector容器。下面介绍后一种方法:
例如要开辟以下空间
则可以使用vector<vector<int>> ,代码如下
void main()
{
vector<vector<float>> bookList;
vector<float> book;
float keyNumber;
bool flag = true;
while(flag)
{
do
{
cin>>keyNumber;
if (!cin) //当输入类型错误时从这里进入,也即输入完成
{
flag = false;
break;
}
book.push_back(keyNumber);
} while (cin.get() != '\n' );
if (flag)
{
bookList.push_back(book);
book.clear();
}
}
for (int i = 0;i<bookList.size();i++)
{
cout<<"\n\n";
for( int j =0 ;j <bookList.at(i).size(); j++)
cout<<bookList.at(i).at(j)<<" ";
}
}
则结果为
注意其中输入的n是输入终止的标志,使用vector容器的一大好处是vector对象在程序调用结束后,自动销毁占用的内存块。
更多推荐
已为社区贡献2条内容
所有评论(0)