我只想进行一些初步检查,并在需要时快速返回{-1,-1}向量。编译器以某种方式说:我应该将返回类型更改为向量*
但是在执行此预检查代码之前,当前返回类型适用于我的后续部分。那我误会了什么?
class SomeClass {
public:
static vector<int> solution(vector<int>& numbers, int target) {
if (numbers.empty() || numbers.size() < 2) {
return new vector<int> {-1, -1}; // <== Compile Error
}
unordered_map<int, int> hash;
vector<int> result;
.
.
.
return result;
}
};
int main() {
vector<int> testNums = {11, 15, 2, 7};
vector<int> result = SomeClass::solution(testNums, 9);
return 0;
}
答案 0 :(得分:3)
不知何故,编译器说:我应该将返回类型更改为
vector *
在C ++中,您需要一个指针(或类似 pointer 的类型)来指向动态分配的内存。
因此,替换:
return new vector<int> {-1, -1};
具有:
return { -1, -1 };
将使其按预期运行。