Hi,

I am a newbie to boost graph library (BGL).

1) To build a graph with vertices with unique ids - Able to do this
2) To get the vertex containing a specific idsI have created a graph with vertices that have a custom property. - how can I do this ?

The way I have tried to do is to iterate through all the vertices and checked each vertex's property value. Is there a better way to do this ?

Note - This field is a unique Id field

Can it be indexed based on the unique id, so that it can be accessed directly ?

Given below is a small example:

Code:
/*
Aim -
-----
1) To build a graph with vertices with unique ids - Able to do this
2) To get the vertex containing a specific ids - How do I do this ?


*/

#include "boost/graph/adjacency_list.hpp"
using namespace boost;

class VertId
{
    public:
        typedef boost :: vertex_property_tag kind;
};



int main()
{

    typedef property<VertId, std :: string> VertIdProp;

    typedef adjacency_list<
                           vecS,
                           vecS,
                           directedS,
                           VertIdProp
                         > GraphType;

    GraphType g1;


    std :: string vp1 = "a100",
                  vp2 = "a200",
                  vp3 = "a300";

    add_vertex(vp1, g1);
    add_vertex(vp2, g1);
    add_vertex(vp3, g1);

    property_map<GraphType, VertId> :: type propMap1;

    propMap1 = get(VertId(), g1);

    graph_traits<GraphType> :: vertex_iterator vertCurrItr, vertEndItr;

    // search for vertex containing the id a300

    for(
        tie(vertCurrItr, vertEndItr) = vertices(g1);
        vertCurrItr != vertEndItr;
        vertCurrItr++
       )
    {
        if(propMap1[*vertCurrItr] == "a300")
            std :: cout << "found it!!\n";
    }


    return (0);
}
Thanks,
Muthu