Boost logo

Boost Users :

From: Johan Oudinet (johan.oudinet_at_[hidden])
Date: 2005-11-21 08:31:32


Hello,

I like the named parameter method to define graph properties, so all
our properties are concentrated in a struct. But, I'd like add a
vertex with specific properties are already defined:
//=======================
#include <iostream>
#include <string>

#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>

using namespace std;
using namespace boost;

struct People {
  People () { }
  People (string const& n, int a) : name(n), age(a) { }

  string name;
  int age;
};

int main(int, char**) {
  typedef adjacency_list< vecS, vecS, bidirectionalS, People > Graph;
  typedef graph_traits< Graph >::vertex_descriptor vertex_descriptor;

  Graph g;
  vertex_descriptor v;

  People n ("toto", 26);
  v = add_vertex (g); // this use the default ctor of People, a
add_vertex(g, n)
  g[v] = n; // will be more efficiently (avoid a
People assignment)

  cout << g[v].name << " is " << g[v].age << " old." << endl;
}
//=======================

--
Johan

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net