src/work/alpar/list_graph.h
changeset 531 66f1c466889f
parent 515 a7eeb8af6b34
child 542 69bde1d90c04
     1.1 --- a/src/work/alpar/list_graph.h	Tue May 04 16:52:15 2004 +0000
     1.2 +++ b/src/work/alpar/list_graph.h	Wed May 05 07:53:51 2004 +0000
     1.3 @@ -472,7 +472,7 @@
     1.4        template<typename TT>
     1.5        const NodeMap<T>& operator=(const NodeMap<TT> &m)
     1.6        {
     1.7 -	copy(m.container.begin(), m.container.end(), container.begin());
     1.8 +	std::copy(m.container.begin(), m.container.end(), container.begin());
     1.9  	return *this;
    1.10        }
    1.11        
    1.12 @@ -561,7 +561,7 @@
    1.13        template<typename TT>
    1.14        const EdgeMap<T>& operator=(const EdgeMap<TT> &m)
    1.15        {
    1.16 -	copy(m.container.begin(), m.container.end(), container.begin());
    1.17 +	std::copy(m.container.begin(), m.container.end(), container.begin());
    1.18  	return *this;
    1.19        }
    1.20        
    1.21 @@ -715,7 +715,7 @@
    1.22        template<typename TT>
    1.23        const SymEdgeMap<T>& operator=(const SymEdgeMap<TT> &m)
    1.24        {
    1.25 -	copy(m.container.begin(), m.container.end(), container.begin());
    1.26 +	std::copy(m.container.begin(), m.container.end(), container.begin());
    1.27  	return *this;
    1.28        }
    1.29        
    1.30 @@ -1081,7 +1081,7 @@
    1.31        template<typename TT>
    1.32        const NodeMap<T>& operator=(const NodeMap<TT> &m)
    1.33        {
    1.34 -	copy(m.container.begin(), m.container.end(), container.begin());
    1.35 +	std::copy(m.container.begin(), m.container.end(), container.begin());
    1.36  	return *this;
    1.37        }
    1.38        
    1.39 @@ -1154,6 +1154,36 @@
    1.40  
    1.41    public:
    1.42      class Node;
    1.43 +    int id(Node v) const; 
    1.44 +
    1.45 +    class Node : public NodeGraphType::Node {
    1.46 +      friend class EdgeSet;
    1.47 +      //      template <typename T> friend class NodeMap;
    1.48 +      
    1.49 +      friend class Edge;
    1.50 +      friend class OutEdgeIt;
    1.51 +      friend class InEdgeIt;
    1.52 +      friend class SymEdge;
    1.53 +
    1.54 +    public:
    1.55 +      friend int EdgeSet::id(Node v) const; 
    1.56 +      //      Node(int nn) {n=nn;}
    1.57 +    public:
    1.58 +      Node() : NodeGraphType::Node() {}
    1.59 +      Node (Invalid i) : NodeGraphType::Node(i) {}
    1.60 +      Node(const typename NodeGraphType::Node &n) : NodeGraphType::Node(n) {}
    1.61 +    };
    1.62 +    
    1.63 +    class NodeIt : public NodeGraphType::NodeIt {
    1.64 +      friend class EdgeSet;
    1.65 +    public:
    1.66 +      NodeIt() : NodeGraphType::NodeIt() { }
    1.67 +      NodeIt (Invalid i) : NodeGraphType::NodeIt(i) {}
    1.68 +      NodeIt(const EdgeSet& _G) : NodeGraphType::NodeIt(_G.G) { }
    1.69 +      NodeIt(const typename NodeGraphType::NodeIt &n)
    1.70 +	: NodeGraphType::NodeIt(n) {}
    1.71 +      operator Node() { return Node(*this);}
    1.72 +    };
    1.73  
    1.74    private:
    1.75      //Edges are double linked.
    1.76 @@ -1305,7 +1335,6 @@
    1.77        return it;
    1.78      }
    1.79  
    1.80 -    int id(Node v) const { return G.id(v); }
    1.81      int id(Edge e) const { return e.n; }
    1.82  
    1.83      /// Adds a new node to the graph.
    1.84 @@ -1387,36 +1416,6 @@
    1.85  //       first_node=first_free_node=first_free_edge=-1;
    1.86  //     }
    1.87  
    1.88 -  public:
    1.89 -    class Node : public NodeGraphType::Node {
    1.90 -      friend class EdgeSet;
    1.91 -      //      template <typename T> friend class NodeMap;
    1.92 -      
    1.93 -      friend class Edge;
    1.94 -      friend class OutEdgeIt;
    1.95 -      friend class InEdgeIt;
    1.96 -      friend class SymEdge;
    1.97 -
    1.98 -    protected:
    1.99 -      friend int EdgeSet::id(Node v) const; 
   1.100 -      //      Node(int nn) {n=nn;}
   1.101 -    public:
   1.102 -      Node() : NodeGraphType::Node() {}
   1.103 -      Node (Invalid i) : NodeGraphType::Node(i) {}
   1.104 -      Node(const typename NodeGraphType::Node &n) : NodeGraphType::Node(n) {}
   1.105 -    };
   1.106 -    
   1.107 -    class NodeIt : public NodeGraphType::NodeIt {
   1.108 -      friend class EdgeSet;
   1.109 -    public:
   1.110 -      NodeIt() : NodeGraphType::NodeIt() { }
   1.111 -      NodeIt (Invalid i) : NodeGraphType::NodeIt(i) {}
   1.112 -      NodeIt(const EdgeSet& _G) : NodeGraphType::NodeIt(_G.G) { }
   1.113 -      NodeIt(const typename NodeGraphType::NodeIt &n)
   1.114 -	: NodeGraphType::NodeIt(n) {}
   1.115 -      operator Node() { return Node(*this);}
   1.116 -    };
   1.117 -
   1.118      class Edge {
   1.119        friend class EdgeSet;
   1.120        template <typename T> friend class EdgeMap;
   1.121 @@ -1578,7 +1577,7 @@
   1.122        template<typename TT>
   1.123        const EdgeMap<T>& operator=(const EdgeMap<TT> &m)
   1.124        {
   1.125 -	copy(m.container.begin(), m.container.end(), container.begin());
   1.126 +	std::copy(m.container.begin(), m.container.end(), container.begin());
   1.127  	return *this;
   1.128        }
   1.129        
   1.130 @@ -1588,6 +1587,9 @@
   1.131  
   1.132    };
   1.133  
   1.134 +  template< typename GG>
   1.135 +  int EdgeSet<GG>::id(Node v) const { return G.id(v); }
   1.136 +
   1.137  /// @}  
   1.138  
   1.139  } //namespace hugo