在 C++ 标准库中,unordered_set 和 unordered_map 在底层通常是单独实现的,而不是 unordered_set 是基于 unordered_map 实现的。
尽管 unordered_set 和 unordered_map 都使用了哈希表作为底层数据结构,但它们在实现上通常是独立的,因为它们的功能和设计目标有所不同。unordered_set 专注于存储独立的键,而 unordered_map 则是存储键值对。虽然它们之间有相似之处,但由于用途不同,因此通常会分别实现。
然而,由于底层数据结构相似,它们的实现可能会共享一些代码或设计思想。例如,它们可能共享一些哈希函数的实现或哈希冲突的处理方式,但在实际实现中,它们通常是独立的。
总的来说,unordered_set 和 unordered_map 通常是单独实现的,尽管它们在底层都使用了哈希表作为数据结构,但它们的设计和实现是针对不同的使用场景和需求的。