2010-04-22 12 views
6

Zastanawiam się, czy któryś z was zna typ kontenera mapowania skojarzonego C++, na którym mogę wykonywać wiele sprawdzeń kluczowych. Mapa musi mieć stałe wyszukiwanie czasu, ale nie obchodzi mnie, czy jest uporządkowana czy nieuporządkowana. To musi być szybkie.Wiele kluczowych map w C++

Na przykład chcę zapisać kilka obiektów std :: vector na mapie z liczbą całkowitą i pustą * jako klucze wyszukiwania. Zarówno int, jak i void * muszą być zgodne, aby mój wektor mógł zostać odzyskany. Czy coś takiego już istnieje? Czy będę musiała rzucić własną. Jeśli tak, jakieś sugestie? Próbowałem przechowywać boost :: unordered_map w innym boost :: unordered_map, ale nie miałem jeszcze żadnego sukcesu z tą metodą. Być może będę kontynuować Pershing tej metody, jeśli nie ma prostszego sposobu. Dzięki!

Odpowiedz

0

Można użyć boost::multi_index.

(chociaż myślę, że faktycznie chcesz użyć tego typu, który zawiera zarówno pustkę *, jak i liczbę całkowitą jako klucz do mapy, i po prostu porównać surowe dane dla obu w celu zapewnienia operatorowi porównania dla mapa)

2

Jeśli nie chcesz używać zwiększenia, możesz wypróbować map< int, map<void*, vector> >. Wyszukiwania są jednak O (log (rozmiar mapy)).

Powiązane problemy