Форум программистов, компьютерный форум CyberForum.ru

Сортировка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подкоректировать (с++) http://www.cyberforum.ru/cpp-beginners/thread201413.html
Здравствуйте!!! Задача такая! Вводится дата, месяц, год. Нужно посчитать дни с началы эры. Тест такой: ввод1: 02010001 вывод1: 2 ввод2: 01010002 вывод2:
C++ Cчетчик дней с рождения Христа Здраствуйте, есть такая задача. Надо написать счетчик дней с рождения Христоса. пример. 02010001 вывод 2 02010002 вывод 366 http://www.cyberforum.ru/cpp-beginners/thread201407.html
C++ игра (с++)
Здравствуйте! Нужно составить игру про шарики. Если в линии встречаются 3 или больше одинаковых цветов шарико, то нужно этот ряд шаров удалить. Задача состоит в том что бы посчитать сколько шариков удалилось. Цвета шариков это номера от 1 до 9. Тест такой: ввод1: 5 1 3 3 3 2 вывод1: 3 ввод2: 10
Числовой массив C++
Задан числовой массив, состоящий из n элементов (n<=100). Определить есть ли среди последних 5 элементов только один четный положительный.
C++ Количество дней от одной даты до другой http://www.cyberforum.ru/cpp-beginners/thread201387.html
Здравствуйте. Подскажите пожалуйста как найти количество дней от одной даты до другой?
C++ Учебники С++ для начинающего программиста Здравствуйте,подскажите где можно скачать Учебники С++ для начинающего программиста,где всё достоверно написано что да как делать? подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3

Сортировка - C++

01.12.2010, 18:21. Просмотров 275. Ответов 0
Метки (Все метки)

Стало интересно. Возможно-ли отсортировать вектор элементов своего типа стандартным алгоритмом 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//Figure.h
#pragma once
 
class Figure
{
public:
    Figure() { }
    virtual ~Figure() { }
    virtual double GetSquare()=0;
    virtual bool operator <(Figure* Obj)=0;
};
 
class Square:public Figure
{
public:
    Square(int a_):a(a_) { }
    ~Square() { }
    double GetSquare()
    {
        return a*a;
    }
    bool operator <(Figure* Obj)
    {
        return GetSquare() < Obj->GetSquare();
    }
private:
    int a;
};
 
class Triangle:public Figure
{
public:
    Triangle(int a_):a(a_) { }
    ~Triangle() { }
    double GetSquare()
    {
        return (a*a)/2;
    }
    bool operator <(Figure* Obj)
    {
        return GetSquare() < Obj->GetSquare();
    }
private:
    int a;
};
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
30
//Figure.cpp
#include "Aa.h"
 
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    const int n=5;
    std::vector<Figure*> VecFig(n);
    Triangle Ob1(5);
    Square Ob2(10);
    Triangle Ob3(6);
    Square Ob4(15);
    Triangle Ob5(10);
    VecFig[0]=&Ob1;
    VecFig[1]=&Ob2;
    VecFig[2]=&Ob3;
    VecFig[3]=&Ob4;
    VecFig[4]=&Ob5;
    for(size_t i=0; i<VecFig.size(); ++i)
        std::cout<<VecFig[i]->GetSquare()<<' ';
    std::cout<<'\n';
    std::sort(VecFig.begin(), VecFig.end());
    for(size_t i=0; i<VecFig.size(); ++i)
        std::cout<<VecFig[i]->GetSquare()<<' ';
    std::cout<<'\n';
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru