Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 31

Сортировка массива структур по возрастанию одного из полей

02.01.2019, 19:33. Показов 1262. Ответов 7

Студворк — интернет-сервис помощи студентам
Всем привет,
Есть структура
C++
1
2
3
4
5
6
7
8
struct Taksopark//создание структуры
{
    char vid_avto[20];
    int vmestimost;
    float rashod_topliva;
    float price;
    int kovlo;
};
Структура хранится в файле я ее считываю с файла в массив
Нужно отсортировать по возрастанию поля цены
сортирую так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Taksopark b[10];
    while (!fs1.eof())
    {
        fs1 >> b[i].vid_avto >> b[i].vmestimost >> b[i].rashod_topliva >> b[i].price >> b[i].kovlo;
        i++;
 
    }
 
    std::sort(begin(b), end(b), [](const Taksopark& x, const Taksopark& y) {return x.price < y.price; });
    for (Taksopark a1 : b) 
      {
    cout << "Вид авто:" << a1.vid_avto << endl;
    cout << "Вместимость:" << a1.vmestimost << endl;
    cout << "Расход топлива:" << a1.rashod_topliva << endl;
    cout << "Цена:" << a1.price << " $" << endl;
    cout << "Колво:" << a1.kovlo << endl;
    cout << "------------" << endl;
       }
Но проблема в том что выводится сначала строка с символами -874575475
затем отсортированная структура и после еще выводится не отсортированная структура,что хранится в файле
в чем причина?что я делаю не так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.01.2019, 19:33
Ответы с готовыми решениями:

сортировка массива структур из 3 полей
Сортировка массива структур из 3 полей по всем полям с приоритетами. Необходимо создать record состоящий из 3-х полей...

Сортировка массива структур по возрастанию
Здравствуйте помогите осуществить сортировку, есть массив tabletrue структур whd, который надо отсортировать по параметру h, к...

Сортировка массива структур по возрастанию
Помогите, пожалуйста. Нужно отсортировать данную структуру по номеру группы (по возрастанию). #include &lt;stdlib.h&gt; ...

7
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
02.01.2019, 20:25
Сотрим стандартным sort
C++
1
sort(b, b + i);
Но перед этим перегужаем оператор
C++
1
2
3
Taksopark operator< (const Taksopark& a, const Taksopark& b) {
    return {a.price < b.price};
}
0
83 / 20 / 0
Регистрация: 30.10.2018
Сообщений: 106
02.01.2019, 20:39
sort("name_of_array_or_vector".begin()," name_of_array_or_vector".end());
это сортировка по возрастанию: с начала, до конца вектора или массива

Добавлено через 2 минуты
Цитата Сообщение от Poki Посмотреть сообщение
Но проблема в том что выводится сначала строка с символами -874575475
неинициализированные переменные заполняются мусором
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 31
02.01.2019, 20:49  [ТС]
Что-то не понимаю,почему тогда ругается
Миниатюры
Сортировка массива структур по возрастанию одного из полей  
0
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
02.01.2019, 21:40
Перегрузку cделайте вне main()
0
0 / 0 / 0
Регистрация: 29.01.2016
Сообщений: 31
03.01.2019, 20:50  [ТС]
Цитата Сообщение от NePascalist Посмотреть сообщение
Перегрузку cделайте вне main()
Написал так как Вы указали
C++
1
2
3
4
Taksopark operator< (const Taksopark& x, const Taksopark& y)
{
    return{ x.price < y.price };
}
Далее уже так и все равно ошибки
Миниатюры
Сортировка массива структур по возрастанию одного из полей  
0
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
03.01.2019, 21:34
Крайне извиняюсь, не проверял на правильность
C++
1
2
3
4
bool operator< (const Taksopark& x, const Taksopark& y)
{
    return{ x.price < y.price };
}
Вот это правильно (код проверил)
0
83 / 20 / 0
Регистрация: 30.10.2018
Сообщений: 106
04.01.2019, 15:47
старайся писать, привыкать к английским словам
example: ne kolichestvo, a AMOUNT
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2019, 15:47
Помогаю со студенческими работами здесь

Сортировка массива структур по одному из полей
Есть структура: struct Book { char name; char author; char publisher; int pages; } И массив структур: const int size =...

Сортировка массива структур по одному из полей
Задание 1.Описать структуру с именем STUDENT, содержащую следующие поля: • NAME – фамилия и инициалы; • GROUP – номер группы; •...

Сортировка массива структур по одному из полей
Привет всем! У меня такая загвоздка возникла... Есть вот такой массив: Structure ListArray Dim Name As String ...

Сортировка массива структур по одному из полей
Нужно в asm-файле отсортировать масив структур(фамилия, средний бал студента) за средним балом. Ввод и вывод масива нужно делать в c или...

Сортировка массива структур по одному из полей по алфавиту
Вечер добрый. Нужна помощь в реализации сортировки массива структур(а точнее, одного поля массива) по алфавиту. Что имеем: struct book...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru