【发布时间】:2021-11-03 15:40:48
【问题描述】:
您好,我正在尝试练习 c++,但在解决问题时遇到了错误,我在代码中使用了向量,并在通过引用运算符“[]”在向量中添加两个元素时出现错误
C++
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> temp;
int p = 0;
for (auto i = nums.begin(); i != (nums.end() - 1); ++i) {
cout<<*i;
p = nums[i]+nums[i+1]; //Error is in this line
if ((p) == target) {
temp.push_back(i);
temp.push_back(i + 1);
return temp;
}
}
}
};
错误:类型向量没有可行的重载运算符[]
【问题讨论】:
-
i是一个迭代器,而不是一个索引,你可能想要p = *i + *(i + 1);。 -
顺便说一句,如果找不到,您的函数不会返回。
-
std::adjacent_find(带有自定义谓词)可能会有所帮助。 -
感谢您的帮助