@AiR_WiZArD

Как отсортировать вектор по одному из элементов структуры?

Есть структура, в которой хранятся некоторые параметры:
typedef struct
{
	sf::Vector2f position;			// Координаты
	float angle;					// Угол относительно оси
	float thrust;					// Тяга трастера
//... и так далее
} calcThrusterType;


составлен и заполнен вектор из этой структуры:
std::vector <calcThrusterType> thrusters;

Как можно отсортировать вектор по одному элементу? Нужно получить структуры в порядке возрастания угла.
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
std::sort(thrusters.begin(), thrusters.end(), 
    [](const calcThrusterType& x, const calcThrusterType& y) {
        return (x.angle < y.angle);
    });

Вы используете typedef и в вашем компиляторе нет Си++11?
bool angleLess(const cTT& x, const cTT& y) { return x.angle < y.angle; }

std::sort(thrusters.begin(), thrusters.end(), angleLess);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы