lemon/edge_set.h
changeset 1099 ad40f7d32846
parent 787 c2230649a493
child 1092 dceba191c00d
     1.1 --- a/lemon/edge_set.h	Fri Aug 09 11:07:27 2013 +0200
     1.2 +++ b/lemon/edge_set.h	Sun Aug 11 15:28:12 2013 +0200
     1.3 @@ -2,7 +2,7 @@
     1.4   *
     1.5   * This file is a part of LEMON, a generic C++ optimization library.
     1.6   *
     1.7 - * Copyright (C) 2003-2008
     1.8 + * Copyright (C) 2003-2010
     1.9   * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    1.10   * (Egervary Research Group on Combinatorial Optimization, EGRES).
    1.11   *
    1.12 @@ -255,13 +255,14 @@
    1.13    /// that node can be removed from the underlying graph, in this case
    1.14    /// all arcs incident to the given node is erased from the arc set.
    1.15    ///
    1.16 +  /// This class fully conforms to the \ref concepts::Digraph
    1.17 +  /// "Digraph" concept.
    1.18 +  /// It provides only linear time counting for nodes and arcs.
    1.19 +  ///
    1.20    /// \param GR The type of the graph which shares its node set with
    1.21    /// this class. Its interface must conform to the
    1.22    /// \ref concepts::Digraph "Digraph" or \ref concepts::Graph "Graph"
    1.23    /// concept.
    1.24 -  ///
    1.25 -  /// This class fully conforms to the \ref concepts::Digraph
    1.26 -  /// "Digraph" concept.
    1.27    template <typename GR>
    1.28    class ListArcSet : public ArcSetExtender<ListArcSetBase<GR> > {
    1.29      typedef ArcSetExtender<ListArcSetBase<GR> > Parent;
    1.30 @@ -685,13 +686,14 @@
    1.31    /// be removed from the underlying graph, in this case all edges
    1.32    /// incident to the given node is erased from the arc set.
    1.33    ///
    1.34 +  /// This class fully conforms to the \ref concepts::Graph "Graph"
    1.35 +  /// concept.
    1.36 +  /// It provides only linear time counting for nodes, edges and arcs.
    1.37 +  ///
    1.38    /// \param GR The type of the graph which shares its node set
    1.39    /// with this class. Its interface must conform to the
    1.40    /// \ref concepts::Digraph "Digraph" or \ref concepts::Graph "Graph"
    1.41    /// concept.
    1.42 -  ///
    1.43 -  /// This class fully conforms to the \ref concepts::Graph "Graph"
    1.44 -  /// concept.
    1.45    template <typename GR>
    1.46    class ListEdgeSet : public EdgeSetExtender<ListEdgeSetBase<GR> > {
    1.47      typedef EdgeSetExtender<ListEdgeSetBase<GR> > Parent;
    1.48 @@ -867,7 +869,7 @@
    1.49        arc.id = arcs.size() - 1;
    1.50      }
    1.51  
    1.52 -    void next(Arc& arc) const {
    1.53 +    static void next(Arc& arc) {
    1.54        --arc.id;
    1.55      }
    1.56  
    1.57 @@ -954,13 +956,14 @@
    1.58    /// single-linked lists for enumerate outgoing and incoming
    1.59    /// arcs. Therefore the arcs cannot be erased from the arc sets.
    1.60    ///
    1.61 +  /// This class fully conforms to the \ref concepts::Digraph "Digraph"
    1.62 +  /// concept.
    1.63 +  /// It provides only linear time counting for nodes and arcs.
    1.64 +  ///
    1.65    /// \warning If a node is erased from the underlying graph and this
    1.66    /// node is the source or target of one arc in the arc set, then
    1.67    /// the arc set is invalidated, and it cannot be used anymore. The
    1.68    /// validity can be checked with the \c valid() member function.
    1.69 -  ///
    1.70 -  /// This class fully conforms to the \ref concepts::Digraph
    1.71 -  /// "Digraph" concept.
    1.72    template <typename GR>
    1.73    class SmartArcSet : public ArcSetExtender<SmartArcSetBase<GR> > {
    1.74      typedef ArcSetExtender<SmartArcSetBase<GR> > Parent;
    1.75 @@ -1173,7 +1176,7 @@
    1.76        arc.id = arcs.size() - 1;
    1.77      }
    1.78  
    1.79 -    void next(Arc& arc) const {
    1.80 +    static void next(Arc& arc) {
    1.81        --arc.id;
    1.82      }
    1.83  
    1.84 @@ -1181,7 +1184,7 @@
    1.85        arc.id = arcs.size() / 2 - 1;
    1.86      }
    1.87  
    1.88 -    void next(Edge& arc) const {
    1.89 +    static void next(Edge& arc) {
    1.90        --arc.id;
    1.91      }
    1.92  
    1.93 @@ -1304,13 +1307,14 @@
    1.94    /// single-linked lists for enumerate incident edges. Therefore the
    1.95    /// edges cannot be erased from the edge sets.
    1.96    ///
    1.97 +  /// This class fully conforms to the \ref concepts::Graph "Graph"
    1.98 +  /// concept.
    1.99 +  /// It provides only linear time counting for nodes, edges and arcs.
   1.100 +  ///
   1.101    /// \warning If a node is erased from the underlying graph and this
   1.102    /// node is incident to one edge in the edge set, then the edge set
   1.103    /// is invalidated, and it cannot be used anymore. The validity can
   1.104    /// be checked with the \c valid() member function.
   1.105 -  ///
   1.106 -  /// This class fully conforms to the \ref concepts::Graph
   1.107 -  /// "Graph" concept.
   1.108    template <typename GR>
   1.109    class SmartEdgeSet : public EdgeSetExtender<SmartEdgeSetBase<GR> > {
   1.110      typedef EdgeSetExtender<SmartEdgeSetBase<GR> > Parent;