读书人

能说说怎样用vector来代替内置数组特

发布时间: 2012-03-18 13:55:38 作者: rapoo

能说说怎样用vector来代替内置数组,特别是二维数组
能说说怎样用vector来代替内置数组,特别是二维数组

例如 将以下代码中的内置数组换成用vector代替 将是如何?

#include <iostream>
using namespace std;

const int row = 3;
const int line = 3;

int main()
{
int arry[row][line] = {0};
int i, j;
int count = 0;

for (i = 0; i != row; ++i)
{
for (j = 0; j != line; ++j)
{
arry[i][j] = count;
++count;
cout < < arry[i][j] < < "\t ";
}
cout < < endl;
}

return 0;
}

[解决办法]
你自己翻翻vector的说明吧,调用每个TempVector[i]的reisize()函数初始化,或者这样写:
vector <vector <int> > TempVector( Height, vector <int> ( Width, 缺省值 ) );
使用上和2维数组没区别。一样用TempVector[i][j]这种方式读写。

其实在没有vector的年代我们一般用这种形式:
int** pData = new int*[Height];
for( int i=0; i <Hight; ++i )
  pData[i] = new int[Width];
这个和这样使用vector是一个道理的。这样理解可能更容易一些吧。
[解决办法]
const int row = 3;
const int line = 3;

int main()
{
vector <vector <int> > arry( row,vector <int> (line) );//定义数组,初始值为0

int i, j;
int count = 0;

for (i = 0; i != row; ++i)
{
for (j = 0; j != line; ++j)
{
arry[i][j] = count;
++count;
cout < < arry[i][j] < < "\t ";
}
cout < < endl;
}

return 0;
}

读书人网 >C++

热点推荐