Hello,

I'm trying to implement a std::priority_queue, but the literature is quite fuzzy, and I don't understand some of the things I need to do.

I have a class called Paths, which contains, as its base object, a std::list <unsigned int>, which describes a certain path on a graph theoretic tree, with each node identified by an unsigned int. Each Path object has a function .getLength(), which returns the weight of the path, where each edge between nodes has a different weight / length.

I then have a list of Path objects, called list <Paths> finallist, which contains numerous Path objects as well as lots of other methods.

I'd like to copy the list of Path objects into a priority queue, probably using a std::vector as base container ( as we need random access, so the list won't do ), such that the queue maintains the different Path objects ordered with respect to their .getLength() attribute ( which returns a double ), with shortest paths first.

An integer queue seems very easy, and I've even seen examples where people use
Code:
priority_queue <myClass> pq;
to sort their class objects, but these only have a single member in their private space, which the queue seems happy to sort by with no additional instructions. I'd like to sort by the value returned by .getLength().

Any help or pointers in the right direction would be hugely appreciated.

Thank you very much,
Quentin