我想知道,我可以使用insert关键字将元素添加到vector
的{{1}}吗?
例如,我对此vector
有vector
vector<int> temp1;
,元素在内部vector
循环中添加。在out for
循环结束时,我需要将元素添加到for
;
temp1
然后,我尝试逐行打印vector<vector<int> >temp1;
for (int a;a<size(),a++){//...
vector<int> temp2;
for (int b=0;b<closer_points;b++){
// some steps here...
vector<int> pt_no=mydata.Find_End_point(my_list,s1,s2);
temp2=pt_no;
}
temp1[a].insert(temp1[a].end(),temp2.begin(),temp2.end());
}
,因为temp1
的元素出现在一行中。
temp2
但是,这不起作用。任何人都可以纠正这个,PLZ ......
答案 0 :(得分:0)
您需要使用temp1.push_back(temp2);
答案 1 :(得分:0)
temp1中并[a] .insert(temp1中并[a] .end关于(),temp2.begin(),temp2.end());
将一系列值附加到现有向量:
std::copy(temp2.begin(),temp2.end(), std::back_inserter(temp1));
将范围作为新矢量附加到现有的vector_of_vectors:
vector<vector<int> > vecvec;
vector<int> toappend;
// some steps :)
vecvec.push_back(toappend);
// or
vecvec.push_back(vector<int>(toappend.begin(), toappend.end());
如果您还没有<{>},请包括<iterator>
和<algorithm>
如果我这样说;我有一套积分。我想将这些点分组为矢量,然后将它们放入另一个矢量中。所以,我猜我的最终输出是矢量矢量。例如,最终结果应该看起来像((1,3),(4,6,9,8,21),(5,7,12),..)。
好的,这里是:
// (
std::vector<std::vector<int> > vecvec;
// (1,3)
{
std::vector<int> vec;
vec.push_back(1);
vec.push_back(3);
vecvec.push_back(vec);
}
// (4,6,9,8,21)
{
std::vector<int> vec;
vec.push_back(4);
vec.push_back(6);
vec.push_back(9);
vec.push_back(8);
vec.push_back(21);
vecvec.push_back(vec);
}
// (5,7,12)
{
std::vector<int> vec;
vec.push_back(5);
vec.push_back(7);
vec.push_back(12);
vecvec.push_back(vec);
}
// )
// ....
... // (use vecvec)