I'm trying to create varaible of type 'std::priority_queue' like this:
struct
{
bool operator()(std::vector<int> v1, std::vector<int> v2){return (v1[2] + v1[3]) > (v2[2] + v2[3]);};
} queueCompare;
std::priority_queue< std::vector<int>, std::vector< std::vector<int> >, queueCompare > queue;
But the compiler gives me this error:
expected a type, got `queueCompare'
I don't exactly understand what is wrong here. As far as I know, this should be a correct way of creating it.
that is invalid struct definition. correctly struct definition is not
struct {...} namebutstruct name {...}In addition, I recommend using const reference in the compare method to avoid unnecessary copies