C++学习笔记(七)输入不定长度二维数组
2016-03-26 12:01
274 查看
被一个看似简单的问题困扰一个晚上,对于C++中数组的使用,这里要讨论的是如何利
用cin及相关函数从荧屏上将从键盘输入的整数储存到数组中,对于长度已知的数组,可以很容易地开辟数组,而对于长度未知的数组,则一方面可以采用动态分配长度的数组空间实现,另一方面可以采用STL模板库中的vector容器。下面介绍后一种方法:
例如要开辟以下空间
则可以使用vector<vector<int>> ,代码如下
则结果为
注意其中输入的n是输入终止的标志,使用vector容器的一大好处是vector对象在程序调用结束后,自动销毁占用的内存块。
用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对象在程序调用结束后,自动销毁占用的内存块。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性