У меня есть указатель на вектор указателей на объекты
vector<object*>* vec;
Который содержит информацию для объектов, которые могут в настоящее время сталкиваться с другим объектом. Это здорово, но мне нужно отсортировать этот вектор по расстоянию от корневого объекта, и я не знаю, как лучше всего это сделать.
В нынешнем виде объект сортирует другой временный вектор другой структуры
struct tempsort{
int distanceFromObject;
object* obj;
}
С такой функцией:
bool sorter(tempsort* first, tempsort* second){
return first->distanceFromObject < second->distanceFromObject;
}
Реализация:
vector<tempsort*> tosort;
for (int a = 0; a < vec->size(); a++){
tosort.push_back(new tempsort);
tempsort.distanceFromObject = distanceBetweenObjects(host,(*vec)[a]);
tempsort.obj=(*vec)[a];
}
sort(tempsort.begin(),tempsort.end(),sorter);
Объект теперь разрешает столкновения.
Объекты Tempsort теперь стерты.
Однако мне бы очень хотелось отсортировать исходный вектор вместо создания этого временного вектора. Это возможно? Если да, то как?