Potrzebuję przechować w jakiejś kolekcji dużą liczbę obiektów (spokojnie zajmą kilka GB RAMu i będzie ich kilka milionów).
Potrzebuję kolekcji, w której będzie można szybko dane wyszukiwać. Dlatego pomyślałem o hashsecie.
Znalazłem w bibliotece boosta:
boost::unordered_set<T>
Jako T wstawię swój obiekt (np. point), w którym zdefiniuje funkcję:
std::size_t hash_value(point const& p)
oraz operator:
bool operator==(point const& p1, point const& p2)
Spodziewam się, że wyszukiwanie odbywać się będzie w ten sposób, że najpierw zostanie obliczony hash, a potem element zostanie znaleziony w tablicy obiektów z tym samym hashem. Czy faktycznie tak to działa?
Czy użycie tej kolekcji jest dobrym pomysłem, może są jakieś lepsze rozwiązania?