То, что вы ищете, называется std::unordered_set/map
. Они являются частью C ++ 11 , следующей версии стандарта C ++ (которая должна быть завершена через несколько месяцев). Они также были включены в Технический отчет 1 в 2005 году, который представлял собой список дополнений к стандартной библиотеке C ++ между первым стандартом и следующим. В TR1 они были в пространстве имен std::tr1
.
Boost на самом деле поставляется с реализацией TR1 (хотя вы не должны использовать версию std::tr1::shared_ptr
, так как обычные boost::shared_ptr
и std::shared_ptr
в C ++ 11 намного, намного лучше) .
Если я помню, причиной, по которой хеш-таблицы не были изначально представлены в C ++ 98, была просто нехватка времени для комитета по стандартам C ++. По сути, у них была дата отсечения, чтобы отправить товар, а хэш-таблицы этого не сделали.