关于 vector 的问题,期待高手解答!
定义了一个结构体
typedef struct p1{
vector <p2> a; //另外定义的p2
}p1;
后再定义一个vector <p1> v_p1;
vector <p1> ::iterator it_p = v_p1.begin();
请问如何定义一个iterator才能遍历vector <p1> 中的所有的vector <int> a中的元素?或者有什么其它方法可以遍历呢?
[解决办法]
要想直观一点的使用,可以把vector当成数组来用撒,
如可以用v_p1[0].a[0]来访问v_p1的第一个p1类型元素的成员a的第一个int型元素.
当然这样访问要小心下标越界的问题,呵呵
[解决办法]
每个v_p1的元素单独遍历
相当于两个for循环
[解决办法]
如果说vector里面只存放了int类型的,你可以通过占用内存的方法来统计。
[解决办法]
也可以这样进行遍历,呵呵
vector <p1> ::iterator it_p = v_p1.begin();
for( ; it_p != v_p1.end(); ++it_p)
{
vector <int> ::iterator pi = (*it_p).a.begin();
for( ; pi != (*it_p).a.end(); ++pi)
{
...............//你的各项操作
}
}
[解决办法]
p1提供一个遍历内部数组的方法。