c++使用红黑树的stl容器
时间: 2023-08-27 17:14:47 浏览: 136
在C++中,你可以使用`std::set`容器来实现红黑树(Red-Black Tree)。`std::set`是STL提供的有序集合容器,它使用红黑树来实现。
以下是一个使用`std::set`的简单示例:
```cpp
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
// 插入元素
mySet.insert(5);
mySet.insert(2);
mySet.insert(8);
mySet.insert(3);
// 遍历元素
for (const auto& element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
// 查找元素
auto it = mySet.find(2);
if (it != mySet.end()) {
std::cout << "Found: " << *it << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
// 删除元素
mySet.erase(8);
// 再次遍历元素
for (const auto& element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们首先创建了一个`std::set<int>`容器,并插入了一些整数元素。然后我们遍历容器中的元素,并查找特定的元素。最后,我们从容器中删除了一个元素,并再次遍历容器。
请注意,`std::set`会根据元素的大小自动维护一个有序的红黑树结构。因此,插入、查找和删除操作的平均时间复杂度为O(log n)。
阅读全文