c++ - 运行 VC 6.0 C++ 时,不断出现错误 C2146
问题描述
#include <iostream>
#include <vector>
#include <windows.h>
using namespace std;
int main()
{
// your code goes here
class Solution {
public:
vector<vector<int> > combinationSum(vector<int>& candidates, int target);
vector<vector<int> > combinationSum(vector<int>& candidates, int target)
{
vector<vector<int> > res;
vector<int> out;
combinationSumDFS(candidates, target, 0, out, res);
return res;
}
void combinationSumDFS(vector<int>& candidates, int target, int start, vector<int>& out, vector<vector<int> >& res)
{
if (target < 0)
return;
if (target == 0) {
res.push_back(out);
return;
}
for (int i = start; i < candidates.size(); ++i) {
out.push_back(candidates[i]);
combinationSumDFS(candidates, target - candidates[i], i, out, res);
out.pop_back();
}
}
} yoyo;
vector<int> aa = [ 1, 2, 3, 4, 5 ];
vector<vector<int> > restl = [[]];
restl = yoyo.combinationSum(&aa, 3);
court << restl;
return 0;
}
当我运行上述内容时,我得到了
F:\VC6.0\Microsoft Visual Studio\Common\MSDev98\Bin\combinationSum.cpp(10) : error C2146: syntax error : missing ',' before identifier 'combinationSum'".
解决方案
有很多错误:
- 第一个声明
vector<vector<int> > combinationSum(vector<int>& candidates, int target);
毫无意义且错误,只需将其删除即可。 vector<int> aa = [ 1, 2, 3, 4, 5 ]
是错的。初始化列表必须用 分隔{}
:vector<int> aa = { 1, 2, 3, 4, 5 };
[[]]
没有意义,直接放弃yoyo.combinationSum(&aa, 3);
错了,应该是yoyo.combinationSum(aa, 3);
因为vector是通过引用传递的,所以这里不需要指针。- 中有一个错字
court << restl
,应该是cout << restl
,但无论如何向量没有输出运算符<<
,你必须自己循环遍历向量,我把这个作为练习留给你。
推荐阅读
- python - Python Flask App 中未捕获自定义异常
- react-native - AdMobBanner 的 `testDeviceID` 属性已弃用。测试设备 ID 现在是全局设置的。改用 AdMob.setTestDeviceIDAsync
- arrays - 查找 n 数组的所有唯一 n 组合
- reactjs - React-Table:不可分配给 Partial 类型
> - c++ - 使用 g++ 静态初始化具有命名标签的嵌套 C++ 结构
- c# - 什么 System.IndexOutOfRangeException: 'Index was outside the bounds of the array.' 意思是?- 如何在 C# 中进行冒泡排序?
- powershell - 为什么“发送邮件消息”在 Powershell 控制台中有效,但在 PowerShell ISE 中无效?
- sql - 查询在插入触发器中返回 3 列以供查看
- java - Jackson 数据绑定未序列化 Collection 中的类型元数据
- html - 在 Internet Explorer 3.0 中设置 cookie?