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
函数在不同容器中的主要区别在于它们的存储顺序、性能特性和是否允许重复元素。在选择合适的容器时,需要根据你的具体需求来权衡这些因素。