C++ 它使用什么样的二叉搜索树来实现“std::set”?

C++ 它使用什么样的二叉搜索树来实现“std::set”?,c++,algorithm,data-structures,C++,Algorithm,Data Structures,在cplusplus.com中,您可以阅读以下内容: 集合通常实现为二进制搜索树 有人知道它使用的是什么样的二叉搜索树吗?我想它是一个平衡的二叉树,但是哪一个呢?它是一个红黑树 在visual studio上键入#include,然后右键单击以查看实现 也可以在这里找到:这是一棵红黑相间的树 在visual studio上键入#include,然后右键单击以查看实现 也可以在这里找到:这完全取决于标准库实现的实现者。由于有很多不同的实现,这个问题可能很难完全回答。它甚至不必是二元搜索树(“通常”

在cplusplus.com中,您可以阅读以下内容:

集合通常实现为二进制搜索树

有人知道它使用的是什么样的二叉搜索树吗?我想它是一个平衡的二叉树,但是哪一个呢?

它是一个红黑树

在visual studio上键入
#include
,然后右键单击以查看实现

也可以在这里找到:

这是一棵红黑相间的树

在visual studio上键入
#include
,然后右键单击以查看实现


也可以在这里找到:

这完全取决于标准库实现的实现者。由于有很多不同的实现,这个问题可能很难完全回答。它甚至不必是二元搜索树(“通常”)(但我相信大多数(如果不是所有的话)实现都是)。它是特定于实现的,即红黑树()非常常见。我知道这取决于实现,但我认为通常会使用特定的数据结构。@arne您所说的在实践中是正确的,但我知道的所有实现最终都源自Stepanov的源代码,并使用相同的基本数据结构和算法。这完全取决于标准库实现的实现者。由于有很多不同的实现,这个问题可能很难完全回答。它甚至不必是二元搜索树(“通常”)(但我相信大多数(如果不是所有的话)实现都是)。它是特定于实现的,即红黑树()非常常见。我知道这取决于实现,但我认为通常会使用特定的数据结构。@arne您所说的在实践中是正确的,但我所知道的所有实现最终都源自Stepanov的源代码,并使用相同的基本数据结构和算法。虽然大多数实现都使用红黑尝试,这当然不是必需的。虽然大多数实现都使用红黑试用,但这肯定不是必需的。