Why does it "seem" to sort correctly this way even though my brain is telling me that on the last part of the add function s it should be if(TempDate > Date[(DCounter-1) + i])
Code:
class Data
{
public:
Data():DCounter(0) {};
~Data() {Name.clear(); Date.clear(); Description.clear();};
void addJob(string TempName, int TempDate, string TempDesc);
void showAll();
private:
deque <string> Name;
deque <int> Date;
deque <string> Description;
int DCounter;
};
void Data::addJob(string TempName, int TempDate, string TempDesc)
{
if(DCounter == 0){
Name.push_back(TempName);
Date.push_back(TempDate);
Description.push_back(TempDesc);
DCounter++;
}
else if(DCounter == 1){
if (Date[0] < TempDate){
Name.push_front(TempName);
Date.push_front(TempDate);
Description.push_front(TempDesc);
DCounter++;
}
else {
Name.push_back(TempName);
Date.push_back(TempDate);
Description.push_back(TempDesc);
DCounter++;
}
}
else {
for (int i = 0; i < DCounter; i++){
if(TempDate > Date[(DCounter) + i]){
Name.insert(Name.begin()+i, TempName);
Date.insert(Date.begin()+i, TempDate);
Description.insert(Description.begin()+i, TempDesc);
DCounter++;
break;
}
}
}
}
edit: it half works, if i call it with;
Code:
JobList->addJob("Dentist", 612, "");
JobList->addJob("M0", 623, "");
JobList->addJob("M1", 622, "");
JobList->addJob("M2", 624, "");
JobList->addJob("M3", 610, "");
it outputs
Code:
Task Date
0: M3 610
1: M2 624
2: M0 623
3: M1 622
4: Dentist 612