COIN-OR::LEMON - Graph Library

Ignore:
Timestamp:
04/22/04 18:36:57 (20 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@507
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/deba/edge_map_registry.h

    r340 r377  
    44#include <vector>
    55
     6template <typename G, typename K>
     7class EdgeMapRegistry;
     8
    69#include "edge_map_base.h"
    710
    8 template <typename G, typename E>
     11template <typename G, typename K>
    912class EdgeMapRegistry {
    1013public:
    1114        typedef G Graph;
    12         typedef E Edge
     15        typedef K Edge;
    1316       
    1417        typedef EdgeMapBase<Graph, Edge> MapBase;
     18        friend class MapBase;
    1519
    1620protected:
    17         typedef std::vector<EdgeMapBase*> Container;
     21       
     22        Graph* graph;
     23
     24        typedef std::vector<MapBase*> Container;
    1825       
    1926        Container container;
    20        
     27
     28public:
     29
     30        EdgeMapRegistry(Graph g) : graph(&g) {}
     31
    2132        void add(MapBase& map_base) {
    2233                if (map_base.graph) {
     
    2435                }
    2536                container.push_back(&map_base);
    26                 map_base.graph = this;
     37                map_base.graph = graph;
    2738                map_base.graph_index = container.size()-1;
    2839        }
    2940       
    3041        void erase(MapBase& map_base) {
    31                 if (map_base.graph != this) return;
    3242                container.back()->graph_index = map_base.graph_index;
    3343                container[map_base.graph_index] = container.back();
     
    3545                map_base.graph = 0;
    3646        }
     47
    3748       
    3849        void add(Edge& edge) {
     
    5061        }
    5162
    52         friend class MapBase;
    5363};
    5464
Note: See TracChangeset for help on using the changeset viewer.