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?