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

用vector创建的二维数组,怎样用iterator操作啊解决方案

2012-02-22 
用vector创建的二维数组,怎样用iterator操作啊?如这样定义一个二维数组:vector vector int ivec应该

用vector创建的二维数组,怎样用iterator操作啊?
如这样定义一个二维数组:
vector <   vector <int>   > ivec;

应该怎样用iterator进行初始化呢?

[解决办法]
for(vector <vector <int> > ::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
{
for(vector <int> ::iterator iiter = (*iter).begin(); iiter != (*iter).end(); ++iiter)
{
*iiter = ??;
..........
}
}
[解决办法]
vector <vector <int> > ivec(2);
typedef vector <int> ::iterator Iter;
typedef vector <vector <int> > ::iterator IIter;
IIter iiter;
Iter iter;
for (iiter=ivec.begin(); iiter!=ivec.end(); iiter++)
{
(*iiter).resize(3);
for (iter=(*iiter).begin(); iter!=(*iiter).end(); iter++)
cin > > (*iter);
}
[解决办法]
vector < vector <int> > ivec;
-------------------------------------------------
此处你定义的是空vector,无法用iterator进行初始化,你应该用push_back操作加入元素。
或者,你可以不定义空vector,而给定一个初始大小。
[解决办法]
开始时同时指定多维的,可以像这样:

vector <vector <int> > a(3, vector <int> (4));//相当于一个3×4的整数数组。

热点排行