.............
#include<algorithm>
......................
sort(collection->begin(), collection->end());
Сортировка элементов вектора
В общем, имеется вектор, содержащий указатели на объекты различных классов.
В программе я создаю эти объекты и помещаю в коллекцию. После этого мне необходимо их отсортировать функцией set().
Вот:
Код:
После просмотра коллекции ничего не происходит.Все объекты выводятся в том же порядке.
В чем ошибка?Может вектор должен сортироваться не по указателям на объекты, а по самим объктам?
Что за объекты? У них перегружены операции сравнения? Иначе как он узнает кто из 2-х соседних больше, а кто меньше.
Цитата: oxotnik333
Что за объекты? У них перегружены операции сравнения? Иначе как он узнает кто из 2-х соседних больше, а кто меньше.
В моих классах имеется:
в 1-м поле string и int
во 2-м 2 поля string и int
операции сравнения не перегружены.
Думаю, необходимо написать функцию, возращающую результат сравнения?
VAR
i, j, c: INTEGER;
b: POINTER TO ARRAY OF INTEGER;
BEGIN
ASSERTmin <= max;
NEWb, max - min 1;
FOR i := 0 TO LENa - 1 DO INCbai - min END;
i := 0;
FOR j := min TO max DO
c := bj - min;
WHILE c > 0 DO
ai := j; INCi; DECc
END
END
END
вот алгоритм сортировки с указателем, а как стек встроить?
к стати бесплaтный тулбaр для браузеров можете взять здесь http://www.pi7.ru/foto-mir/ . Удобно и видео бесплатно там тож есть..