COIN-OR::LEMON - Graph Library

Changeset 6:b63d1bc367f7 in lemon-0.x for src/include/graph.h


Ignore:
Timestamp:
12/16/03 17:19:08 (20 years ago)
Author:
Alpar Juttner
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@19
Message:

!!!Tests!!!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/include/graph.h

    r3 r6  
    55//inline void *operator new(size_t s, void *p) { return p; }
    66#include <new>
     7#include <vector>
    78
    89namespace NEGRO
     
    4142    class AllEdgeIterator;
    4243   
    43     class FirstAnythingTypeNode;
     44    class FirstAnythingTypeNode; //Required by the unified First() function.
    4445
    4546    friend class NodeIterator;
     
    392393
    393394    Graph() : _FST(this) {}
     395
     396    // MAPS:
     397    template<class T> class NodeMap
     398    {
     399      Graph<N,E> *G;
     400      vector<T> map;
     401
     402    public:
     403      typedef T value_type;
     404      void Set(NodeIterator i, const T &t) {map[i.Index()]=t;}
     405      T &Get(NodeIterator i) {return map[i.Index()];}
     406      T &operator[](NodeIterator i) {return map[i.Index()];}
     407
     408      void update() { map.resize(G->OldGraph<N,E>::NodeMax());}
     409
     410      NodeMap(Graph<N,E> &Gr) : map(Gr.OldGraph<N,E>::NodeMax()) { G=&Gr ;}
     411     
     412    };
     413
     414    template<class T> class EdgeMap
     415    {
     416      Graph<N,E> *G;
     417      vector<T> map;
     418
     419    public:
     420      typedef T value_type;
     421      void Set(NodeIterator i, const T &t) {map[i.Index()]=t;}
     422      T &Get(NodeIterator i) {return map[i.Index()];}
     423      T &operator[](NodeIterator i) {return map[i.Index()];}
     424     
     425      void update()
     426        { map.resize(Gr.OldGraph<N,E>::edge_block_num*EDGE_BLOCK_SIZE);}
     427     
     428      EdgeMap(Graph<N,E> &Gr)
     429        :map(Gr.OldGraph<N,E>::edge_block_num*EDGE_BLOCK_SIZE)
     430        { G=&Gr ;}
     431     
     432    };
     433   
    394434  };
    395435 
Note: See TracChangeset for help on using the changeset viewer.