C++ 中的 set
是一個關聯容器,它包含一組唯一的元素,并按照特定的排序規則進行存儲
std::set
不支持下標運算符([]
),因為它不能像數組或向量那樣通過索引直接訪問元素。相反,你需要使用迭代器來遍歷元素。std::set
的插入和刪除操作的時間復雜度為 O(log n),其中 n 是集合中的元素數量。std::set
不同,std::unordered_set
使用哈希表實現,因此它的插入、刪除和查找操作的平均時間復雜度為 O(1)。但是,由于哈希表的特性,最壞情況下這些操作的時間復雜度可能會達到 O(n)。std::unordered_set
也不支持下標運算符。std::set
類似,std::multiset
也不支持下標運算符,并且插入和刪除操作的時間復雜度為 O(log n)。std::unordered_multiset
不支持下標運算符。總之,set
函數在不同容器中的主要區別在于它們的存儲順序、性能特性和是否允許重復元素。在選擇合適的容器時,需要根據你的具體需求來權衡這些因素。