gpt4 book ai didi

c++ - unordered_set 的迭代器减法不起作用

转载 作者:行者123 更新时间:2023-11-28 04:47:14 26 4
gpt4 key购买 nike

<分区>

尝试在无序集中查找元素的索引。发现迭代器的减法(运算符“-”)是一种方法。

vector<int> twoSum(vector<int>& nums, int target) 
{
unordered_set<int> comp;
vector<int> res;
for(int i = 0; i<nums.size(); i++)
{
//unordered_set<int>::iterator it = comp.find(nums[i]);
if (comp.find(nums[i])!=comp.end())
{
//int pos = distance(comp.begin(), comp.find(nums[i]));
auto pos = comp.find(nums[i]) - comp.begin();
res.push_back((int)pos);
res.push_back(i);
}
comp.insert(target-nums[i]);
}
return res;
}

但是我在使用 auto pos 时遇到编译错误:

no match for 'operator-' (operand types are 'std::unordered_set<int>::iterator {aka std::__detail::_Node_iterator<int, true, false>}' and 'std::unordered_set<int>::iterator {aka std::__detail::_Node_iterator<int, true, false>}')

已包括iostream、iterator 和unordered_set。请指教。谢谢

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com