读书人

用vector创建的二维数组怎样用itera

发布时间: 2012-02-22 19:36:55 作者: rapoo

用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的整数数组。

读书人网 >C++

热点推荐