0 / 0 / 0
Регистрация: 17.04.2016
Сообщений: 1
1

Не получается отсортировать по полю класса

30.04.2017, 20:01. Показов 610. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не понимаю, в чем ошибка.
Есть вектор, содержащий указатели на объекты класса Shape
Хочу его отсортировать с помощью std::sort по значению периметра, но сравнивает неправильно

Подскажите, пожалуйста, в чем ошибка?


Код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int main()
{
    //srand(time(0));
    int size = 5;
    stepik::vector<stepik::shared_ptr<Shape>> shapes = GenerationVector(size);  
 
    stepik::vector<stepik::shared_ptr<Shape>> result(size); 
 
    for (int i = 0; i < size; i++)
    {
        std::cout << " P = " << shapes[i]->Perimeter() << std::endl << std::endl;       
    }
 
    std::sort(shapes.begin(), shapes.end(), [](const stepik::shared_ptr<Shape>  a, const stepik::shared_ptr<Shape>  b) -> bool
    { 
        std::cout << "------------------------------\n";
        std::cout << (a->Perimeter()) << "    " << ( b->Perimeter()) << std::endl
        std::cout << ((float)(a->Perimeter()) < (float)(b->Perimeter())) << std::endl;
        std::cout << "------------------------------\n";
        return ((a->Perimeter()) < (b->Perimeter())); 
    });
    
    for (int i = 0; i < size; i++)
    {
        std::cout <<  " P = " << shapes[i]->Perimeter() << std::endl << std::endl;      
    }
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2017, 20:01
Ответы с готовыми решениями:

Отсортировать список объектов по полю класса
Добрый вечер, есть некая структура, храню в списке объекты этой структуры. Хочу упорядочить список...

Отсортировать вектор объектов класса по определенному полю
Нужно отсортировать вектор word объектов objectW по полю length. В 42 строке пытаюсь это сделать,...

Отсортировать коллекцию, состоящую из экземпляров класса, по конкретному полю
Как отсортировать коллекцию, состоящую из экземпляров класса, по конкретному полю (через передачу...

Как отсортировать массив элементов некоторого класса в java по одному полю используя sort?
Здравствуйте, уважаемые участники форума! Возник такой вопрос: Как отсортировать массив элементов...

1
7639 / 6447 / 2940
Регистрация: 14.04.2014
Сообщений: 28,104
01.05.2017, 09:08 2
Конкретнее. Какой тип возвращает Perimeter()? Что выводится?
0
01.05.2017, 09:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2017, 09:08
Помогаю со студенческими работами здесь

Может ли метод родительского класса обратиться к полю дочернего класса
Может ли метод родительского класса обратиться к полю дочернего класса?

Как обратиться к полю объекта класса Car, который находится в массиве класса Cars?
Помогите пожалуйста разобраться. Ниже три разных модуля. Как обратиться к полю объекта класса Car,...

Как полю класса А обратится к приватной функции класса А?
Есть лифт (класс &quot;Elevator &quot;), в котором находится кнопка (класс &quot;Button&quot;). При нажатии на кнопку...

Обращение к полю производного класса по ссылке базового класса
Описывается базовый и производный класс. В методе Main создается объект производного класса и...

QSet указателей на объекты класса, сортированный по полю класса
Здравствуйте. Возьмём тестовый класс: class TEST { public: TEST(); QString name; } ...

Доступ к приватному полю класса X из метода класса Y
class X { private: int a; }; class Y {


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru