读书人

vector声明2维数组的有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

vector声明2维数组的问题
我用vector想声明一个8*n 的2维数组
vector < vector <int> > a ;

for ( int i =0; i < 8; i++ )
{
for(int j=0;j <k;j++);
{
a[i].push_back(s1);
a[i].push_back(s2);
a[i].push_back(s3);
}
}
说我越界了
请问要怎么修改


[解决办法]
vector 内存结构是连续的
仔细想一下就会发现 该方法不可行
------------------------------------

vc为何报错:
vector 使用 []是很危险的。 一个空数组开始就使用[]就是一个表现出的错误。
a[i].push_back(s1); 的[]首先就是一个错. 而且没有方法补救.....
建议:
vector想声明一个8*n 的2维数组 就定义成普通vector <int> b; 定位时用 b.at(行*列);

------------------------------------
勉强往该容器中填数据的话过程应该是这样的
vector < vector <int> > a ;
vector <int> b;
for(int i=0; i <8; i++)
{
for(int j=0; j <5; j++)
{
b.push_back(j);
}
a.push_back(b);
}
TRACE( "%d\n ",a.size());

读书人网 >C++

热点推荐