Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Object * sort / 8 сообщений из 8, страница 1 из 1
09.10.2018, 12:48
    #39714872
semenvsemen5
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Добрый день

У меня есть

{
Object * sort;

size_t size;
}

Как быстрее всего отсортировать этот массив объектов используя каждый раз внешние метод сравнения объектов

Спасибо.
...
Рейтинг: 0 / 0
09.10.2018, 13:06
    #39714881
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Тут замеры проводили 20303177 разных алгоритмов сортировки. Ускорять можно только если исходные данные почти отсортированы.
...
Рейтинг: 0 / 0
09.10.2018, 13:30
    #39714892
semenvsemen5
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Я имел ввиду синтаксис простейшей сортировки

Ну например с помощью std::sort
...
Рейтинг: 0 / 0
09.10.2018, 13:39
    #39714899
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Смотри хэлп на std::sort()

cmp — функция сравнения, возвращающая ​true если первый аргумент меньше второго.
Сигнатура функции сравнения должна быть эквивалентна следующей:
bool cmp(const Type1 &a, const Type2 &b);
...
Рейтинг: 0 / 0
09.10.2018, 13:44
    #39714906
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
struct my_obj_t {
Object * sort;

size_t size;
};

bool my_obj_cmp(const my_obj_t &a, const my_obj_t &b) {
   if(a.sort == b.sort) {
       return a.size < b.size;
   } else {
       return a.sort < b.sort;
   }
}

...
std::vector<my_obj_t> arr;
...
std::sort(arr.begin(), arr.end(), my_obj_cmp);
...
...
Рейтинг: 0 / 0
09.10.2018, 13:50
    #39714907
semenvsemen5
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Огромное спасибо
...
Рейтинг: 0 / 0
09.10.2018, 13:51
    #39714909
semenvsemen5
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Стоп Вы не поняли


Есть код

Object * sort; // -- Вот тут указатель на кучу обжектов и их надо отсортировать

size_t size; // Вот тут их количество

std::vector требует вставки в вектор - а я хочу сортировать прямо на указателях

Есть ли такая возможность ?
...
Рейтинг: 0 / 0
09.10.2018, 13:58
    #39714912
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Object * sort
Тогда так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
bool Object_cmp(const Object &a, const Object &b) {
       return a < b;
}

...
std::sort(sort, sort + size, Object_cmp);
...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Object * sort / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]