1.两数之和
title: 1.两数之和
tag: 哈希表
categories: 代码随想录
std:unordered_map<int,int> map;
//key 存数字 value存index
for(int i = 0 ;i < nums.size(); i++){
auto iter= map.find(target-nums[i]);
if(iter!=map.end()){
return{iter->second,i};
}
map.insert(pair<int,int>(nums[i],i));
}
return {};
unordered_map<int,int> map;
for(int i = 0 ; i <nums.size();i++){
unordered_map<int,int>::iterator iter=map.find(target-nums[i]);
if(iter!=map.end()){
return {iter->second,i};
}
map.insert(pair<int,int>(nums[i],i));
}
return {};
Q: 在这边 map.insert(pair<int,int>(nums[i],i)); 可以换成 map.insert(unordered_map<int,int>(nums[i],i));吗
A: 不可以,因为 std::unordered_map
是一个关联容器,其中的元素是键值对(key-value pair),而 unordered_map<int,int>(nums[i], i)
是一个无序键值对,不能直接用来插入到 std::unordered_map
容器中。
在这个例子中,我们需要将每个元素的值 nums[i]
和下标 i
插入到 map
中,以便在后续查找过程中能够快速找到匹配的元素。因此,我们需要使用 std::pair<int, int>
类型来表示每个元素的键值对,然后将其插入到 map
中。
在代码中,map.insert(pair<int, int>(nums[i], i));
表示将一个由 nums[i]
和 i
组成的键值对插入到 map
中。这里使用了 std::pair<int, int>
类型来表示键值对,从而可以将其作为 map
的元素插入到容器中。
需要注意的是,C++ 中提供了很多种容器类型,每种容器类型都有其特定的用途和特性。在使用容器时,需要根据具体情况选择合适的容器类型,并了解容器类型的特性和使用方法,以提高代码的效率和可读性。
原文地址:https://blog.csdn.net/maduit/article/details/142860411
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!