set的在算法竞赛中主要作用是去重,附带一点可以自动排序的好处unordered_set与set的主要区别是set是自动排序的,而unordered_set不会,如果只是注重去重功能,用unordered_set会更快快一点《map与unordered_map》这也是 map与unordered_map的主要区别,map会自动排序,而unordered_map不会,...
set<int,greater<int>>GREATER_SET;//自动排序去重按从大到小排,必须加上functional头文件 set<int>SET;//自动排序从小到大 multiset<int>MULTI_SET;//自动排序不去重不加比较类(greater<int>)默认是从小到大排序 unordered_set<int>UNORDERED_SET;//不自动排序但去重 unordered_multiset<int>UNORDERED_MULTISET;...
//插入元素(去重) us.insert(1); us.insert(4); us.insert(3); us.insert(3); us.insert(2); us.insert(2); us.insert(3); //遍历容器方式一(范围for) for (auto e : us) { cout << e << " "; } cout << endl; //1 4 3 2 //删除元素方式一 us.erase(3); //删除元素方式二...
去重:去除集合中的重复元素。 快速成员检测:检查某个元素是否存在于集合中。 缓存键值:作为关联容器的键来存储唯一标识符。 示例代码 代码语言:txt 复制 #include <iostream> #include <unordered_set> int main() { std::unordered_set<int> mySet; // 插入元素 mySet.insert(10); mySet.insert(20); my...
unordered_set的另一个重要特点是它可以根据元素的哈希值快速定位到相应的存储位置,因此它适用于需要高效查找的场景,如去重、查找元素是否存在等。 需要注意的是,由于unordered_set是无序的,因此其迭代器是无效的,不能保证元素的顺序。如果需要按照元素的顺序进行遍历,可以使用有序的set容器。 0 赞 0 踩最新...
在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时时间复杂度为O(logN)。在C++11中,STL又提供了4个 unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同, 查询时的时间复杂度为O(1)。
set<T> s;//自动排序,自动去重 插入和删除 用insert( ) 方法向集合中插入一个新的元素。注意如果集合中已经存在了某个元素,再次插入不会产生任何效果,集合中是不会出现重复元素的。 set<string> country;//{} country.insert("China");//{"China"} ...
void unordered_set_test2(){unordered_set<int> us;us.insert(1);us.insert(1); // 去重us.insert(2);us.insert(5);us.insert(4);us.insert(3);us.insert(6);for (auto e : us) // 使用范围for遍历{cout << e << " ";}cout << endl;unordered_set<int>::iterator pos = us.find(2...
unordered_set虽然不能排序,但是也是可以去重的,首先我们先对两个数组进行去重。然后,我们遍历其中一个数组,遍历的同时去依次判断当前元素在不在另一个数组中,如果在,就是交集。 AC代码 classSolution{public:vector<int>intersection(vector<int>&nums1,vector<int>&nums2){unordered_set<int>s1(nums1.begin(),...
我们使用unordered_set容器 并且插入多组重复数据 之后使用范围for遍历 达到一个去重的效果 注意 这里和set的区别是不会排序 展示直接去重 unordered_set<int> us1; // 构造一个int类型的空容器us1.insert(3);us1.insert(3);us1.insert(5);us1.insert(1);us1.insert(7);us1.insert(8);for (auto x...