2014-01-21 4 views
-1

Итак, я пытаюсь отсортировать массив из 10 элементов, предоставленных пользователем. Например:Сортировка массива с помощью C++

Человек 1: 5

Человек 2: 3

Человек 3: 9

и т.д. и т.п. ...

Хочу также пару значение с человек. Так что следует читать:

человек 3: 9

Человек 1: 5

Человек 2: 3

Сортировка значений в порядке убывания.

можно сортировать массив, но я не могу получить номер Person для сопряжения со значением ....

Я извиняюсь за отсутствие кода, он находится дома, и я на работе:/

ответ

0

я хотел бы предложить, что вы используете Map в c++

http://www.cplusplus.com/reference/map/map/ 
http://kengine.sourceforge.net/tutorial/g/stdmap-eng.htm 
http://www.yolinux.com/TUTORIALS/CppStlMultiMap.html 

beacuse, как вы можете видеть, что это может скрепить string и int. , а последняя часть - сортировка по int.

0

Вы можете сохранить каждый элемент в объекте std::pair и использовать сортировку std::algorithm. Параметрирование шаблона с помощью конкретного компаратора, который должен описывать ваши критерии заказа, заставляя его сортировать по парам первого элемента или второго.

У вас есть пример в http://www.cplusplus.com/reference/algorithm/sort/, которые могут быть адаптированы к вашим потребностям:

struct myclass { 
    bool operator() (pair i,pair j) { return (i.first>j.first);} 
} myobject; 

... 
... 
... 

vector<pair<string, int> > vectorA = ... 
sort (vectorA.begin(), vectorA.end(), myobject); 
Смежные вопросы