38 namespace lemon { |
38 namespace lemon { |
39 |
39 |
40 /// \addtogroup gutils |
40 /// \addtogroup gutils |
41 /// @{ |
41 /// @{ |
42 |
42 |
|
43 ///Creates convenience typedefs for the graph types and iterators |
|
44 |
|
45 ///This \c \#define creates convenience typedefs for the following types |
|
46 ///of \c Graph: \c Node, \c NodeIt, \c Edge, \c EdgeIt, \c InEdgeIt, |
|
47 ///\c OutEdgeIt. |
|
48 ///\note If \c G it a template parameter, it should be used in this way. |
|
49 ///\code |
|
50 /// GRAPH_TYPEDEFS(typename G) |
|
51 ///\endcode |
|
52 /// |
|
53 ///\warning There are no typedefs for the graph maps because of the lack of |
|
54 ///template typedefs in C++. |
|
55 #define GRAPH_TYPEDEFS(Graph) \ |
|
56 typedef Graph:: Node Node; \ |
|
57 typedef Graph:: NodeIt NodeIt; \ |
|
58 typedef Graph:: Edge Edge; \ |
|
59 typedef Graph:: EdgeIt EdgeIt; \ |
|
60 typedef Graph:: InEdgeIt InEdgeIt; \ |
|
61 typedef Graph::OutEdgeIt OutEdgeIt; |
|
62 |
|
63 ///Creates convenience typedefs for the undirected graph types and iterators |
|
64 |
|
65 ///This \c \#define creates the same convenience typedefs as defined by |
|
66 ///\ref GRAPH_TYPEDEFS(Graph) and three more, namely it creates |
|
67 ///\c UndirEdge, \c UndirEdgeIt, \c IncEdgeIt, |
|
68 /// |
|
69 ///\note If \c G it a template parameter, it should be used in this way. |
|
70 ///\code |
|
71 /// UNDIRGRAPH_TYPEDEFS(typename G) |
|
72 ///\endcode |
|
73 /// |
|
74 ///\warning There are no typedefs for the graph maps because of the lack of |
|
75 ///template typedefs in C++. |
|
76 #define UNDIRGRAPH_TYPEDEFS(Graph) \ |
|
77 GRAPH_TYPEDEFS(Graph) \ |
|
78 typedef Graph:: UndirEdge UndirEdge; \ |
|
79 typedef Graph:: UndirEdgeIt UndirEdgeIt; \ |
|
80 typedef Graph:: IncEdgeIt IncEdgeIt; |
|
81 |
|
82 |
43 /// \brief Function to count the items in the graph. |
83 /// \brief Function to count the items in the graph. |
44 /// |
84 /// |
45 /// This function counts the items (nodes, edges etc) in the graph. |
85 /// This function counts the items (nodes, edges etc) in the graph. |
46 /// The complexity of the function is O(n) because |
86 /// The complexity of the function is O(n) because |
47 /// it iterates on all of the items. |
87 /// it iterates on all of the items. |