哈希数据结构:unordered_set
unordered_set 容器,可直译为“无序 set 容器”。即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会,unordered_set 容器不能存放重复的元素。
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int>result_set;//用于存放最终的交集数据
unordered_set<int>nums_set(nums1.begin(),nums1.end());//存放nums1的数据
for (int i = 0; i < nums2.size();i++) //遍历nums2
{
int num = nums2[i];//将值赋给num
if (nums_set.find(num) != nums_set.end()) //找到nums2中的元素在nums1中也出现
{
result_set.insert(num);
}
}
return vector<int>(result_set.begin(),result_set.end());
}
};
引例:(进一步说明find())
unordered_set<int>myset;
myset.insert(3);
myset.insert(5);
myset.insert(3);
cout<<myset.size()<<endl;
myset.erase(3);
if(myset.find(3)==myset.end())
cout<<" 3 not found "<<endl;
第一:这个容器是个集合,重复插入相同的值是没有效果的,上面虽然插入了2个3,但实际集合里也只有1个3,输出的size也为2。
第二:find的返回值是一个迭代器(iterator),如果找到了会返回指向目标元素的迭代器,没找到会返回end()。