C++ 中的 set
是一種關聯容器,它包含一組唯一的對象
排序:set
中的元素會自動按鍵值進行排序。鍵值是元素本身,可以是數字、字符串或其他類型的數據。
唯一性:set
中的元素不允許重復,每個元素只能出現一次。
快速查找:set
提供了常數時間復雜度的查找操作,即 O(1)。這是因為 set
通常使用紅黑樹實現,這是一種自平衡的二叉搜索樹。
插入和刪除操作:set
支持在常數時間內插入和刪除元素,即 O(1)。這是因為紅黑樹具有很好的平衡性,插入和刪除操作的時間復雜度不會隨著元素數量的增加而增加。
下面是一個簡單的 set
示例:
#include <iostream>
#include <set>
int main() {
std::set<int> my_set = {1, 2, 3, 4, 5};
// 插入元素
my_set.insert(6);
// 刪除元素
my_set.erase(3);
// 查找元素
if (my_set.find(4) != my_set.end()) {
std::cout << "Found: "<< 4 << std::endl;
} else {
std::cout << "Not found: 4" << std::endl;
}
// 遍歷元素
for (int value : my_set) {
std::cout << "Value: " << value << std::endl;
}
return 0;
}
輸出:
Found: 4
Value: 1
Value: 2
Value: 5
Value: 6