首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-16 
vector声明2维数组的问题我用vector想声明一个8*n的2维数组vectorvector inta;for(inti0i 8i++){f

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());

热点排行