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

Сортировка собственных типов данных - C++

Восстановить пароль Регистрация
 
Elfenlide
23 / 23 / 1
Регистрация: 15.04.2012
Сообщений: 183
24.12.2012, 23:49     Сортировка собственных типов данных #1
Задача:
В соответствии с вариантом нужно реализовать шаблонную функцию (функции) для сортировки. Необходимо, чтобы разработанная функция(функции) позволяла сортировать массивы и векторы(std::vector<>) любых объектов(как встроенных типов, так и пользовательских), продемонстрировать это путём создания собственного класса , массив объектов которого нужно отсортировать. Сортировка: In-place merge sort. Bogosort.
Я вот что-то не могу понять что сделать то нужно, тоесть я так понял нужно сделать программу которая бы могла работать с такими строками:
C++
1
2
3
class sort{};
sort mas[10]; // и поехали
vector<sort> //и тоже делать что хочу именно с объектами класса sort.
Я правильно понял?
Если так то тогда хотел бы узнать, с чего начать данную программу? Сортировка это я так понял уже просто отдельная функция а не метод класса. Что тогда в классе должно быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 23:49     Сортировка собственных типов данных
Посмотрите здесь:

Перегрузка операций и сортировка типов Char C++
C++ Цвет собственных типов переменных в C++
C++ метод итерации нахождение собственных векторов и собственных значений матрицы
Вычисление собственных значений и собственных векторов матрицы C++
Преобразование типов данных C++
Вычисление собственных значений и собственных векторов матрицы C++
C++ Композиции на основе собственных типов
Приведение типов собственных классов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,629
Записей в блоге: 17
25.12.2012, 00:38     Сортировка собственных типов данных #2
Варианты:

1. Для применение стандартной сортировки достаточно перегрузить операторы сравнения < > != == итд. в вашем классе
2. Можно определить функтур который будет определять как будут сравниваться объекты вашего класса
3. При поддержке нового стандарта можно использовать лямбда-выражения

Добавлено через 11 минут
Последний вариант :
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
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
//--------------------------------------------------------
using namespace std;
//--------------------------------------------------------
class my
{
  public:
   int id;
   string name;
 
   my(int _id=0, string _name=string() ):id(_id),name(_name){}
};
//--------------------------------------------------------
int main()
{
    std::vector<my> v;
    v.push_back(my(1,"first")  );
    v.push_back(my(2,"second") );
    v.push_back(my(3,"third ") );
 
    sort(v.begin(),v.end(),[](const my& a,const my& b){ return a.id>b.id; } );
 
    for_each(v.begin(),v.end(),[](const my& obj){ cout<<obj.id<<"\t"<<obj.name<<endl; } );
 
    return 0;
}
//--------------------------------------------------------
Yandex
Объявления
25.12.2012, 00:38     Сортировка собственных типов данных
Ответ Создать тему
Опции темы

Текущее время: 16:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru