收藏 分享(赏)

用vector解决c++中动态生成二维数组.doc

上传人:myw993772 文档编号:9310179 上传时间:2019-08-01 格式:DOC 页数:2 大小:24KB
下载 相关 举报
用vector解决c++中动态生成二维数组.doc_第1页
第1页 / 共2页
用vector解决c++中动态生成二维数组.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、用 vector 取代 C-style 的数组 提起数组,大家想必都很熟悉,你可以用索引和指针来操作数组,给程序设计带来了很大的灵活性。但是你知道它有许多天生的缺陷吗? 首先,数组的越界可能会引起程序的崩溃(如果崩溃了,还算你走运_)。其次是动态性不好,包括动态改变大小,动态申请。诸如此类的事,一定会让你伤透脑筋。有什么办法可以解决这些问题吗? 你不用担心,下面我来给大家介绍一种方法:用 vector 取代 C-style 的数组。 关于 vector 我不想多说,我假设大家都了解 temlplate 和 STL。各位在任何一本 C+的书上都可以找的到这些内容的(如果没有,那赶快把它扔掉 )。

2、那为什么是 vector 呢?我们知道 vector 提供了operator函数,可以像数组一样的操作,而且还有边界检查,动态改变大小。(从这点上 deque 也是可以的)。vector 本来就是可以用来代替一维数组的,这里只介绍用它来代替二维的数组。二维以上的可以依此类推。 我们知道,C+的 template 参数是可以嵌套定义的,你可以这样定义一个模板的 Instance vector array2(3);/注意和之间的空格。 这就是我们的关键,array2 可以保存 3 个向量,向量的长度是可以改变的。array2i返回的是第 i 个向量。同理,array2ij返回的是第 i 个向量中的

3、第 j 个元素。 问题到这里,你可能会得意的说:“我明白了,很简单吗!“ 。别急,还有一些细节问题:如下 vector array2(3); array212=9; 我保证你的程序会 segement failed,原因就是你没有指定向量的大小。用 push_back 函数可以解决问题:array21.push_back(9);但是好象不太爽。就不能用 operator吗?答案是肯定的。不过要多加几个步骤,如下: for(int i=0;i i nclude using namespace std; void main() vector array(3); for(int i=0;i3;i+)

4、 arrayi.resize(3);/设置数组的大小 3X3 /现在你可以和使用数组一样使用这个 vector for(int i=0;i3;i+) for(int j=0;j3;j+) arrayij=(i*j); /输出 for(int i=0;i3;i+) for(int j=0;j3;j+) coutarrayij“ “; coutendl; array.resize(5); arry3.resize(3); arry4.resize(3); /现在是 5X3 的数组了 for(int i=0;i5;i+) for(int j=0;j3;j+) arrayij=(i*j); for(int i=0;i5;i+) for(int j=0;j3;j+) coutarrayij“ “; coutendl;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报