我可以使用insert函数将元素添加到向量的向量中吗?

时间:2011-04-16 17:02:16

标签: c++ vector

我想知道,我可以使用insert关键字将元素添加到vector的{​​{1}}吗? 例如,我对此vectorvector 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 ......

2 个答案:

答案 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)