unordered_set<int> set1(nums1.begin(), nums1.end());这样子能把键值对放进哈希表吗
时间: 2024-04-10 09:28:15 浏览: 310
非常抱歉之前的回答中有误。您是正确的,`unordered_set` 是一个哈希表,它只存储键而不存储键值对。所以,`unordered_set<int> set1(nums1.begin(), nums1.end())` 这行代码将会创建一个只包含 `nums1` 中元素的无序集合,而不是一个哈希表。
如果您需要将 `nums1` 中的元素存储在一个哈希表中,可以使用 `unordered_map<int, bool>` 来代替 `unordered_set<int>`。修改后的代码如下:
```cpp
class Solution {
public:
vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
unordered_map<int, bool> hashtable;
vector<int> result;
for (int num : nums1) {
hashtable[num] = true; // 将 nums1 放入哈希表中
}
for (int num : nums2) { // 遍历 nums2,判断是否在哈希表中出现
if (hashtable.count(num) && find(result.begin(), result.end(), num) == result.end()) {
result.push_back(num);
}
}
return result;
}
};
```
这样修改后的代码将返回一个 `vector<int>` 类型的向量,其中存储了 `nums1` 和 `nums2` 的交集元素。
再次对之前的错误表示歉意,并感谢您的理解。如果您还有其他问题,请随时提问。
阅读全文
相关推荐


















