138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
||||||
1 | ||||||
Быстрая сортировка для массива обьектов пользовательского класса14.05.2013, 20:43. Показов 1500. Ответов 17
Метки нет (Все метки)
Насколько я знаю в Си++ есть встроеная ф-ция быстрой сортировки. Как нею воспользоваться для сортировки массива обьектов моего класса? Хочу посортировать массив " GOODS goods[GOODS_IN_SHOP] " за полем NAME по возростанию.
Кликните здесь для просмотра всего текста
0
|
14.05.2013, 20:43 | |
Ответы с готовыми решениями:
17
Классы. Сортировка обьектов класса Не работает быстрая сортировка для двумерного массива Быстрая сортировка и объекты класса Массив указателей объектов класса и их быстрая сортировка |
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 20:52 [ТС] | 3 |
metaluga145, с англ немного туго, но всеравно спасибо. попробую чтото разобрать.
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
14.05.2013, 20:56 | 4 |
Не по теме: o33ik, гугл-переводчик поможет :) Добавлено через 2 минуты Вообще там ничего сложно нету. надо только создать функцию, которая будет сравнивать объекты вашего класса. Обычно это стандартный оператор "<", можно его перегрузить, а можно написать свою функцию
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
||||||
14.05.2013, 21:06 [ТС] | 5 | |||||
metaluga145, по ссылке увидел такой пример
Кликните здесь для просмотра всего текста
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
14.05.2013, 21:08 | 6 | |||||
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 21:09 [ТС] | 7 |
metaluga145, то мне надо написать свою сompare, почти такую же как ета только чтоб сравнивались поля обьека?
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
14.05.2013, 21:10 | 8 |
o33ik, да.
0
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 21:12 [ТС] | 9 |
блин, чтото не очень понимаю. возможно в стандартную ф-цию сортировки отправить массив моих обьектов? или все не так просто будет?
Добавлено через 55 секунд еще ето я не очень понимаю *(int*)a - *(int*)b . блин, я плохо понимаю указатели(
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
14.05.2013, 21:15 | 10 |
следите за цензурностью речи!
для того,чтобы функция могла отсортировать объекты Вашего класса, ей надо знать как их сравнивать. Для этого и нужна функция сравнения
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 21:23 [ТС] | 11 |
metaluga145, то как мне ее написать? меня ети звездочки *(int*)a - *(int*)b пугают, я не знаю как мне сделать такую ф-цию для моего класса. и при етом, если я метод сортировки напишу в классе SHOP(где массив обьектов класса GOODS есть одним из полей и будет вызов самой ф-ции сортировки) то фция будет иметь доступ к защищенным полям обьектов класса GOODS?
0
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|||||||||||
14.05.2013, 21:25 | 12 | ||||||||||
У тебя есть функция
А функция будет типа static int, и её прямо в заголовочном файле можно разместить
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 21:27 [ТС] | 13 |
Eagle123, и все? ого, спасибо. реально помогли, а то я совсем запутался с етими указателями.
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
14.05.2013, 21:27 | 14 |
Оно не будет иметь доступ к полю protected. Да и вообще ему это поле не надо,если функция сравнения написана правильно
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
||||||
14.05.2013, 21:28 [ТС] | 15 | |||||
metaluga145, то по сути написать ету ф-цию, и сделать ее дружественной до класса GOODS?
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
||||||
14.05.2013, 21:32 | 16 | |||||
o33ik, да! только в Вашем случае можно не париться с const void*,а написать просто
1
|
138 / 5 / 1
Регистрация: 25.03.2013
Сообщений: 228
|
|
14.05.2013, 21:33 [ТС] | 17 |
metaluga145, большое спасибо. очень помогли)
0
|
244 / 245 / 38
Регистрация: 08.04.2013
Сообщений: 927
|
|
14.05.2013, 21:35 | 18 |
o33ik, только Вам надо эту функцию написать в правильном месте, чтобы она и доступ имела, и указатель на нее можно было передать
1
|
14.05.2013, 21:35 | |
14.05.2013, 21:35 | |
Помогаю со студенческими работами здесь
18
Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива Написать функцию для класса, возращающую данный из вектора обьектов класса по итератору вектора Быстрая сортировка (сортировка Хоара) для связных списков Быстрая сортировка массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |