Я хочу сортировать deque в соответствии со значением int g, содержащимся в struct node. Структура моей программы заключается в следующем:Сортировка deque, содержащего структуру
struct node
{
int x;
int y;
int g;
};
deque<node> open;
Это функция сортировки Я пытаюсь, но это дает значения мусора. Пожалуйста, наставит меня:
deque<node> sort(deque<node> t)
{
deque<node>::iterator it;
int size= t.size();
node te;
for(int i=0; i<size; i++)
{
for(int j=0; j<size-i; j++)
{
if(t[j].g < t[j+1].g)
{
te.x = t[j].x;
te.y = t[j].y;
te.g = t[j].g;
t[j].x = t[j+1].x;
t[j].y = t[j+1].y;
t[j].g = t[j+1].g;
t[j+1].x = te.x;
t[j+1].y = te.y;
t[j+1].g = te.g;
}
}
}
for(it=t.begin();it!=t.end();it++)
{
te = *it;
cout<<te.x<<","<<te.y<<","<<te.g<<endl;
}
return t;
}
Есть ли причина, что вы не используете 'зЬй :: sort'? – TartanLlama
Просьба указать, как использовать эту функцию в этом случае. Я не знал об этой функции. –
Я хочу сортировать deque в порядке убывания согласно g. –