C++. Объявлен массив из 10 объектов и они выводятся на экран(это код у меня написан). Вывести объект с самым большим значением поля "а"

#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
class A
{

    int a;
    int b;
    
public:
    void show()
    {
        a = rand() % 100;
        b = rand() % 100;
        
        
        cout << a << endl;
        cout << b << endl;
    

        
    }
    int geta()
    {
        return a;
    }
    int getb()
    {
        return b;
    }
    

    friend ostream& operator << (ostream& out, const A& p )
    {
        out << "A: " << p.a << endl;
        out << "B: " << p.b << endl;
        
        

        return out;
    }
};
int main()
{
    srand(time(nullptr));
    A obj[10];
    for (int i = 0; i < 10; i++)
    {
        cout << "#" << i << endl;
        obj[i].show();
        cout <<"____________"<< endl;
    }

Как найти самое большое число в массиве обычных чисел я знаю, а вывести объект с самым большим значением поля "а" не получается.


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

Автор решения: Фёдор

советую сделать obj вектором, тогда реализация будет таковой:

std::vector<A> obj; //Ваш массив

int max = obj[0].geta();
int index = 0;
for (auto it = obj.begin(); it < obj.end(); it++)
    {
        if(it->geta() > max){
            max = it->geta();
            index = (it-obj.begin());
        }
    }
obj[index].show();
→ Ссылка