考虑以下因素:
在 C++ 中,std::unordered_map 在插入过程中使用哈希函数来确定新插入元素的位置。
但是,std::map在插入过程中不使用哈希函数,并使用与在任何中确定新插入元素的位置相同的方法来确定新插入元素的位置。二叉搜索树。我的意思是在任何二叉搜索树中确定新元素位置的方法是,例如,如果该元素大于当前元素,则向右走,或者如果该元素小于当前元素,则向右走左。
我的结论100%准确吗?
它使用哈希函数吗?是的。
它需要是二叉搜索树吗?没有。
C++ 标准仅规定接口的外观,并定义一些约束和要求,例如迭代器失效或某些操作(如插入)的运行时(在 Big-O 中)。
如何满足这些约束和要求取决于实施。