现有
vector<vector<int>*> vect1;
vector<vector<int>*> vect2;
合并vect1和vect2中的数据,可以看出vect1和vect2中的每一个元素都是一个vector,因此不能简单的push_back。比如,vect1中的数据是{{1,2,3,4},{5,6,7,8},{8,9,10,11}},vect2中的数据是{{11,12,13,14},{15,16,17,18},{19,20,21,22}},现在要将vect1和vect2合并成vect3,合并后的结果vect3如下{{1,2,3,4,11,12,13,14},{5,6,7,8,15,16,17,18},{8,9,10,11,19,20,21,22}}
代码如下:
void combine_vector(vector< vector<int>* >& vect1, vector< vector<int>* >& vect2, vector< vector<int>* >& vect3)
{
vector< vector<int>* >::iterator it1;
vector< vector<int>* >::iterator it2;
vector< vector<double>* >::iterator it3;
for(it1=vect1.begin(); it1!=vect1.end(); it1++)
{
vect3.push_back(*it);
}
for (it2=vect2.begin(),it3=vect3.begin(); it2!=vect2.end() && it3!=vect3.end(); it2++,it3++)
{
for (int i = 0; i < vect2.size()/*或者是vect1.size()*/; ++i)
{
(*it3)->push_back((*it2)->at(i));
}
}
}