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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.97
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
#1

Сортировка массива(вектора)структур по одному полю - C++

04.05.2011, 14:07. Просмотров 5152. Ответов 3
Метки нет (Все метки)

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
struct Person{
    std::string surname,name;
    unsigned school,points;
};
int main(){
    std::vector<Person> arr;
    int N;
    std::cin >> N;
    arr.resize(N);
    for (int i = 0; i < N; i++)
        std::cin >> arr[i].surname >> arr[i].name >> arr[i].school >> arr[i].points;
    std::sort(arr[0].points,arr[N-1].points);   //???
    return 0;
}
Со структурами раньше не работал, поэтому затрудняюсь с их сортировкой... Желательно стандартными функциями, вроде qsort или std::sort
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2011, 14:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка массива(вектора)структур по одному полю (C++):

Сортировка массива структур по одному полю - C++
Приветствую. Задача: отсортировать по возрастанию структуру по одному полю. Вчера поднимал тему:...

Сортировка массива структур по одному полю - C++
Приветствую. Есть задача, практически аналогичная моей: http://www.cyberforum.ru/cpp-beginners/thread1403598.html В этом примере...

Сортировка массива (вектора) структур по заданному полю - C++
Нужно отсортировать массив по полю структуры. Все поля типа string. struct DatabaseData{ std::string aPointOfDeparture;//Пункт...

Сортировка массива структур по определенному полю - C++
Всем привет...со структурами проблемка возникла...затупил)Задание состоит в следующем: Ввести структуру Студент с полями...

Сортировка массива структур по заданному полю - C++
Здравствуйте. Нужна помощь в сортировке. Вот само задание: Составить таблицу, содержащую следующие сведения о сотрудниках кафедры: ...

Сортировка массива структур по заданному полю - C++
Задание под вариантом такое : Упорядочить список студентов по предмету физика, и вывести весь список. С 1 пунктом я вроде справился, а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
04.05.2011, 14:32 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//...
struct PointsCmp
{
    bool operator()(const Person& a, const Person& b) const
    {
        return a.points < b.points;
    }
};
 
int main()
{
    //...
    std::sort(arr.begin(), arr.end(), PointsCmp());
    //...
    return 0;
}
1
Choopa
17 / 17 / 0
Регистрация: 03.04.2011
Сообщений: 89
04.05.2011, 14:37 #3
Вот пример
1
Вложения
Тип файла: txt sort.txt (1.0 Кб, 424 просмотров)
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
04.05.2011, 14:41 #4
Или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
 
struct Person{
        std::string surname,name;
        unsigned school,points;
        bool operator< (const Person& a) const{
          return points < a.points;
        }
};
 
int main(){
        std::vector<Person> arr;
        int N;
        std::cin >> N;
        arr.resize(N);
        for (int i = 0; i < N; i++)
                std::cin >> arr[i].surname >> arr[i].name >> arr[i].school >> arr[i].points;
        std::sort(arr.begin(),arr.end());   //???
        return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2011, 14:41
Привет! Вот еще темы с ответами:

HOWTO: сортировка массива структур по произвольному полю - C++
Вот тут товарищ навел на размышления, а как же собственно сортировать по произвольному полю? struct myStruct{ int m1; string m2; ...

Сортировка массива структур через switch по любому полю - C++
Столкнулся с проблемой сортировки массива по любому из полей, а точнее не пойму как реализовать эту сортировку для нескольких &quot;жильцов&quot;...

Сортировка массива структур по выбранному полю с помощью алгоритма std::sort - C++
Не знаю, как правильно передать функцию сравнения в std::sort. Кроме того в моей структуре есть поля одного типа, мне кажется будет...

Сортировка "пузырьком" массива структур по заданному полю - C++
Нужно отсортировать структуру по фамилии доктора, но что то он не сортирует. void sortDoc(Doctor doctor) { int size; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.05.2011, 14:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru