I have a source code which contains as follows:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct st
{
int id;
double d;
};
bool comp(int a, int b)
{
return (a < b);
}
bool comp2(st &a, st& b) { return a.d < b.d; }
int main()
{
vector<int> v = { 9, 4, 7, 2, 5, 15, 11, 12, 1, 3, 6 };
vector<st> vec = {{1, 5.6},{2, 5.7},{3, 4.3}};
auto max = std::max_element(v.begin(), v.end(), comp);
cout << "Max element of v: " << *max; // It's working
auto max2 = std::max_element(vec.begin(), vec.end(), comp2);
cout << "Max element of vec: " << *max2; // It's not working
return 0;
}
When I try display the maximum value of vector vec
I get the following error:
[Error] cannot bind 'std::basic_ostream<char>' lvalue to 'std::basic_ostream<char>&&'
What is the possible solution to the problem?