0
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 时,所有时间都是相同的。我到处寻找答案,似乎找不到任何东西。有人可以看看吗?

4

1 回答 1

2

您永远不会重置temp循环中的值。第一遍之后,它等于数组中的最大元素;在随后的每一次传递中,它仍然是最大的,所以它不会改变。

于 2012-08-10T18:20:15.963 回答