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

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

02.01.2019, 19:33. Показов 1246. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru