Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> qsort и sort 
:(
    Опции темы
afanp
Дата 14.3.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



собственно  не могу понять как с помощью них можно отсортировать например массив структур и вектор структур.
при qsort(array,number,sizeof(int),compare) не понимаю где указывать имя того поля которое нужно отсортировать. есть идея что нужно объявить структуру в функции сравнения заново, но тогда вопрос в том, как там инициилизировать элементы? smile 
и также с вектором, при sort не зняю чо делать
PM MAIL   Вверх
zim22
Дата 14.3.2009, 10:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Код
#include <vector>
#include <algorithm>

struct XY
{
    int x;
    double y;
};

bool sort_pred(const XY &first, const XY &second)
{ 
    return first.x < second.x; 
}

int main(int argc, char *argv[])
{
    std::vector<int> vi;
    vi.push_back(20);
    vi.push_back(5);
    vi.push_back(10);
    std::sort(vi.begin(), vi.end()); // обычная сортировка

    std::vector<XY> vx(2);
    vx[0].x = 20;
    vx[1].x = 10;    
    std::sort(vx.begin(), vx.end(), sort_pred); // сортировка с условием

    return 0;
}



Добавлено @ 10:31
Код
#include <cstdlib>

struct XY
{
    int x;
    double y;
};

int compare_fcn(const void *arg1, const void *arg2)
{
    XY *first = (XY*)arg1;
    XY *second = (XY*)arg2;
    
    if (first->x == second->x)
        return 0;
    else
        if (first->x > second->x)
            return 1;
        else
            return -1;    
}

int main(int argc, char *argv[])
{
    const size_t size = 3;
    XY arr[size] = {{10, 22.33}, {2, 99.33}, {5, 33.22}};
    qsort(arr, size, sizeof(*arr), compare_fcn);
    return 0;
}



Это сообщение отредактировал(а) zim22 - 14.3.2009, 10:33


--------------------
PM MAIL   Вверх
andrew_121
Дата 14.3.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



zim22, Исчерпывающе!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 14.3.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



andrew_121,   smile  smile 


--------------------
PM MAIL   Вверх
afanp
Дата 14.3.2009, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 25.11.2008

Репутация: нет
Всего: нет



zim22,  придет время и я тебя найду и пива тебе куплю. спасибо
PM MAIL   Вверх
zim22
Дата 14.3.2009, 18:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(afanp @  14.3.2009,  18:07 Найти цитируемый пост)
придет время и я тебя найду

звучит как угроза  smile 


--------------------
PM MAIL   Вверх
mes
Дата 14.3.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



 smile 
Цитата(zim22 @  14.3.2009,  17:20 Найти цитируемый пост)

звучит как угроза  smile  

у меня такое же впечатление сложилось, но решил не высказывать до ответа того, кому адресовано.  smile 

Это сообщение отредактировал(а) mes - 14.3.2009, 18:43


--------------------
PM MAIL WWW   Вверх
Dov
Дата 14.3.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 11
Всего: 88



Что-то  мне подсказывает, что ТС ответ на свой главный вопрос так и не получил.    smile  


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.