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

У меня есть

{
Object * sort;

size_t size;
}

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

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

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

cmp — функция сравнения, возвращающая ​true если первый аргумент меньше второго.
Сигнатура функции сравнения должна быть эквивалентна следующей:
bool cmp(const Type1 &a, const Type2 &b);
...
Рейтинг: 0 / 0
Object * sort
    #39714906
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так
Код: 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
Object * sort
    #39714907
semenvsemen5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо
...
Рейтинг: 0 / 0
Object * sort
    #39714909
semenvsemen5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоп Вы не поняли


Есть код

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

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

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

Есть ли такая возможность ?
...
Рейтинг: 0 / 0
Object * sort
    #39714912
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда так
Код: 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
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Object * sort
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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