void sortVector(vector<simEvent>& eventVector){
simEvent temp = eventVector.at(0);
vector<simEvent> tempVector;
tempVector.clear();
int index = 0;
while(!eventVector.empty()){
for(int i=0; i<eventVector.size(); i++){
if(temp.getTimeOfEvent() > eventVector.at(i).getTimeOfEvent()){
temp = eventVector.at(i);
index = i;
}
}
eventVector.erase(eventVector.begin()+index);
tempVector.push_back(temp);
}
for(int i=0; i<tempVector.size(); i++){
cout << "Time: " << tempVector.at(i).getTimeOfEvent() << endl;
}
}
当我打印时,tempVector,所有时间都是相同的。我到处寻找答案,但似乎找不到任何东西。有人可以看看吗?
答案 0 :(得分:2)
您永远不会在循环中重置temp
的值。第一次传递后,它等于数组中最大的元素;在每次后续传球中,它仍然是最大的,所以它不会改变。