C++ 中的 set
是一種關聯容器,它包含一組唯一的對象。以下是 set
的一些主要特點:
set
中的元素是唯一的,即每個元素只能出現一次。如果你嘗試插入一個已經存在的元素,set
不會對其進行任何操作。set
中的元素會自動按照某種排序規則進行排序。默認情況下,這個排序規則是按鍵(key)的自然順序,但你也可以提供自定義的比較函數或對象來改變排序規則。set
中的元素是自動排序的,因此你可以通過迭代器遍歷 set
,并且迭代器會按照元素的順序訪問它們。vector
和 array
不同,set
不支持下標運算符(operator[]
)。你不能像訪問數組元素那樣訪問 set
中的元素。要訪問 set
中的元素,你需要使用迭代器或者 find
函數。array
不同,set
是一個動態容器,它可以根據需要自動調整大小。set
的內存管理是自動的,你不需要(也不能)手動分配或釋放內存。set
提供了一些常量成員函數,如 empty()
、size()
、find()
等,這些函數可以在常量對象上調用。set
提供了雙向迭代器,你可以使用這些迭代器遍歷 set
中的元素。set
中的元素,而無需顯式地使用迭代器。下面是一個簡單的 set
示例:
#include <iostream>
#include <set>
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
for (int num : mySet) {
std::cout << num << " ";
}
return 0;
}
這個示例創建了一個包含整數的 set
,并使用基于范圍的循環遍歷并打印其中的元素。注意,由于 set
中的元素是自動排序的,因此輸出的數字將按照升序排列。