很好用的动态二维数组建立方法

大家都知道,有时候后需要动态建立一个数组,一位数组还好说,但是如果是二维数组则稍显麻烦一些。

在VC中,一般位图的数据传输都是通过一个DWORD指针加上长宽共三个数据进行传输的,这样的缺点就是在代码里需要加点控制,而且在调试的时候比较容易溢出导致程序崩溃。但是能用好还是很不错的。

最近在学习图论的遍历,这里就涉及到要先建立一个图。我首先想试验的遍历方法是深度优先遍历,所以觉得用邻接矩阵法好一点。

如果我直接用上面的方法,或许就没那么多波折了。

我用的是vector。

这个在一维的时候相当好用,绝对是我见过的最好用的几种容器之一了。

但是涉及到二维的时候,就出现了一点的麻烦。

因为最外围的vector成员是vector<int>,而vector在操作符重载上貌似就做了一个[],在进行初始化的时候不是很好用了。

但是后来想了想,结合网上的一些经验,我想到这个方法,很方便很快捷,而且很好用。

代码简单如下:

1     vector<vector<int> > vec;
2     vec.resize(6);
3     for(int i = 0;i < 6;++ i)
4     {
5         vec[i].resize(6);
6     }

先创建一个vector<int>的容器,然后再按照需求调用resize函数开辟空间。

然后再调用容器元素的resize函数对其内部进行空间开辟。

简单6行代码,工作完成。

然后就能够像一个普通二维数组那样进行数据操作啦~

很方便,很快捷,而且效率很高。

示例代码:

1     for(int i = 0;i < 6;++ i)
2     for(int j = 0;j < 6;++ j)
3     {
4         vec[i][j] = j;
5     }

真的是相当好用~~~

  

posted @ 2013-06-09 23:49  Matrix_R  阅读(1871)  评论(0)    收藏  举报