Mam wektor obiektów. Każdy z tych obiektów ma 2 pola (których wartości się powtarzają) np.:
Klasa obj1 = Klasa(2,5);
Klasa obj2 = Klasa(2,4);
Klasa obj3 = Klasa(1,5);
Klasa obj4 = Klasa(3,2);
std::vector<Klasa*> wektor;
wektor.push_back(obj1);
wektor.push_back(obj2);
wektor.push_back(obj3);
wektor.push_back(obj4);
Chcę posortować wektor tak, aby najpierw był sortowany po 1. wartości, a potem wartości pola 1. które się powtarzają poukładał wg. pola 2. Kolejność wektora po sortowaniu:
1. obj3 //(1,5)
2. obj2 //(2,4)
3. obj1 //(2,5)
4. obj4 //(3,2)
Póki co napisałem taki kod:
std::vector<Klasa*> temp;
Klasa* temp1;
temp1 = wektor[0];
for (int i = 0; i < wektor.size(); i++)
{
unsigned int wsc_org = wektor[i].x;
unsigned int wsc_temp = temp1.x;
if (wsc_org > wsc_temp)
{
temp1 = wektor[i];
temp.insert(temp.begin(), temp1);
}
else {
temp1 = wektor[i];
temp.push_back(temp1);
}
}
Natomiast niekoniecznie on działa. Podsuniecie jakiś pomysł w jaki sposób posortować ten wektor?