lemon/elevator.h
changeset 396 b04e431907bc
parent 395 d916b8995e22
child 397 61fbd77f0f44
equal deleted inserted replaced
1:3b92db99501b 2:449373f904dd
    55     typedef Item Key;
    55     typedef Item Key;
    56     typedef int Value;
    56     typedef int Value;
    57 
    57 
    58   private:
    58   private:
    59 
    59 
    60     typedef typename std::vector<Item>::iterator Vit;
    60     typedef Item *Vit;
    61     typedef typename ItemSetTraits<Graph,Item>::template Map<Vit>::Type VitMap;
    61     typedef typename ItemSetTraits<Graph,Item>::template Map<Vit>::Type VitMap;
    62     typedef typename ItemSetTraits<Graph,Item>::template Map<int>::Type IntMap;
    62     typedef typename ItemSetTraits<Graph,Item>::template Map<int>::Type IntMap;
    63 
    63 
    64     const Graph &_g;
    64     const Graph &_g;
    65     int _max_level;
    65     int _max_level;
   431     ///Start the initialization process.
   431     ///Start the initialization process.
   432 
   432 
   433     void initStart()
   433     void initStart()
   434     {
   434     {
   435       _init_lev=0;
   435       _init_lev=0;
   436       _init_num=_items.begin();
   436       _init_num=&_items[0];
   437       _first[0]=_items.begin();
   437       _first[0]=&_items[0];
   438       _last_active[0]=_items.begin()-1;
   438       _last_active[0]=&_items[0]-1;
   439       Vit n=_items.begin();
   439       Vit n=&_items[0];
   440       for(typename ItemSetTraits<Graph,Item>::ItemIt i(_g);i!=INVALID;++i)
   440       for(typename ItemSetTraits<Graph,Item>::ItemIt i(_g);i!=INVALID;++i)
   441         {
   441         {
   442           *n=i;
   442           *n=i;
   443           _where[i]=n;
   443           _where[i]=n;
   444           _level[i]=_max_level;
   444           _level[i]=_max_level;
   473       for(_init_lev++;_init_lev<=_max_level;_init_lev++)
   473       for(_init_lev++;_init_lev<=_max_level;_init_lev++)
   474         {
   474         {
   475           _first[_init_lev]=_init_num;
   475           _first[_init_lev]=_init_num;
   476           _last_active[_init_lev]=_init_num-1;
   476           _last_active[_init_lev]=_init_num-1;
   477         }
   477         }
   478       _first[_max_level+1]=_items.begin()+_item_num;
   478       _first[_max_level+1]=&_items[0]+_item_num;
   479       _last_active[_max_level+1]=_items.begin()+_item_num-1;
   479       _last_active[_max_level+1]=&_items[0]+_item_num-1;
   480       _highest_active = -1;
   480       _highest_active = -1;
   481     }
   481     }
   482 
   482 
   483     ///@}
   483     ///@}
   484 
   484