【发布时间】:2021-08-07 14:29:37
【问题描述】:
我正在尝试使用哈希图解决 2 sum 问题,我想出了以下代码:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> comp;
vector<int> res;
for (int i = 0; i<nums.size(); i++)
{
(comp.count(target - nums[i])) ? return({comp[target - nums[i]], i}) : comp[nums[i]] = i;
}
return res;
}
但它给了我这个错误:
Line 6: Char 46: error: expected expression
(comp.count(target - nums[i])) ? return({comp[target - nums[i]], i}) : comp[nums[i]] = i;
如果我使用此代码,它可以工作:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> comp;
vector<int> res;
for (int i = 0; i<nums.size(); i++)
{
if(comp.count(target - nums[i]))
return{comp[target - nums[i]], i};
else
comp[nums[i]] = i;
}
return res;
}
三元运算符有什么我不知道的地方,还是语法错误?
【问题讨论】:
-
这能回答你的问题吗? return statement in ternary operator c++