Search code examples
c++c++11priority-queuereference-wrapper

Accessing reference wrapper elements in vector c++11


In Graph class:

typedef std::pair<double, Node&> PIRV;

In another class that uses graph:

typedef std::priority_queue<Graph::PIRV&, vector<std::reference_wrapper<Graph::PIRV>>, compareEdge> PECMP;

Now I am trying to access the first element in the priority queue (PECMP someQueue) by doing

double a = someQueue.top().first

However I get the following error:

error: ‘const value_type’ has no member named ‘first’

What is the better way to access elements stored in reference wrapper? Thanks


Solution

  • Problem solved:

    There is a get method in the std::reference_wrapper class which allows one to obtain the element store in there