矢量函數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 –