Структура содержит следующие поля: название процессора... Как сделать более универсальной

Структура содержит следующие поля: название процессора, внутренняя частота процессора, количество ядер, объем кэш-памяти. Написать функцию для нахождения двухъядерного процессора с самой низкой внутренней частотой. как сделать более универсальной. Поменял, но пока без функции(ее наптшу позже). Вопрос: КАК таблицу сделать одно под одним без смещения. Иммею ввиду идет таблица Название процессора, кол во ядер и т.д а цифр под ними

   #include<iostream>
#include<string>
#include<stdio.h>
#include<ctime>
using namespace std;
struct PC
{
    char processor[60];
    float GHZ;
    int Yadra;
    int cache_memory;
};
int main()
{
    setlocale(LC_ALL, "ru");
    srand(time(0));
    
    int t = 0, ch, elements=0;
    struct PC compon[10];
    do
    {
        cout << "Введите названия процессоров: ";
        cin >> compon[t].processor;
        cout << "Введите внутренняя частота процессоров(ГГц): ";
        cin >> compon[t].GHZ;
        cout << "Введите Количества ядер: ";
        cin >> compon[t].Yadra;
        cout << "Введите Объемы кэш-памяти(Мб): ";
        cin >> compon[t].cache_memory;
        cout << "Нажмите q для завершения ввода: ";
        t++;
        elements++;
    } while (scanf_s("%d", &ch) == 1 && t < 10);
    cout << endl;
    cout << "Названия процессоров: " << "Внутренняя частота процессоров(ГГц): " << "Количества ядер: " << "Объемы кэш-памяти(Мб): " << endl;
    for (int i = 0; i < elements; i++)
    {
        cout << compon[i].processor <<" "<< compon[i].GHZ <<" "<< compon[i].Yadra <<" "<< compon[i].cache_memory << endl;
    }
    
    cout << "двухъядерный процессор с самой низкой внутренней частотой:  ";
    
    system("pause");
    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Запихать все PC в массив/вектор/etc и применить min_element с соответствующим компаратором, что-то типа

min_element(begin(PCs),end(PCs),
            [](const PC& a, const PC& b)
            {
                return tie(abs(a.yadra-2),a.GHZ) < tie(abs(b.yadra-2),b.GHZ);
            });

Ну и убедиться, что вернулся итератор, указывающий на двухпроцессорный PC.

→ Ссылка