矢量函数emplace() 我的emplace函数不起作用。任何帮助,将不胜感激矢量比较
vector <int> vec1;
vector <int> vec2(4,0);
vector <int>::iterator iter1;
vector <int>::iterator iter2;
srand(time(NULL));
for(i=0; i<5; i++){
n =rand()%10+1;
vec1.push_back(n);
}
for(iter1=vec1.begin();iter1<vec1.end();iter1++){
for(iter2=vec2.begin();iter2<vec2.end();iter2++){
if(*iter1<=*iter2){
//vec2.emplace(iter1,*iter1);
//print();
}
}
}
它看起来像你的_if condition_不会,除非进入vector1中的值为0.即使在这种情况下,它也不是真的在做你想要的。你确定这个问题是与emplace而不是if?当你说你的“emplace功能不起作用”时,你能解释一下你的意思吗?另外,您可能想重新考虑如何对vector2进行排序,还有一些更好的算法。 https://en.wikipedia.org/wiki/Sorting_algorithm#Comparison_of_algorithms –