According to other suggestion dereferencing may be issue but I am getting segmentation fault even before derefencing while calling the max_element function.
Minimal reproducible example :
#include <bits/stdc++.h>
using namespace std;
class B
{
    public:
    int a, b;
    int getA()
    {
        return a;
    }
    int getB()
    {
        return b;
    }
};
class A
{
    public:
    vector<B> array;
    A()
    {
        array.resize(5);
        array[0].a = array[0].b = 3;
        array[1].a = array[1].b = 5;
        array[2].a = array[2].b = 7;
        array[3].a = array[3].b = 1;
        array[4].a = array[4].b = 2;
    }
    vector<B> getArray()
    {
        return array;
    }
};
int main()
{
    A aobj;
    B maxE = *std::max_element(aobj.getArray().begin(), aobj.getArray().end(),
        [](B jobA, B jobB) {
        return jobA.getA() < jobB.getA();
    });
    
    cout<<maxE.getA();
    return 0;
}
