equal
deleted
inserted
replaced
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 |