这行代码出了什么问题?
bar foo(vector ftw);
它产生
error C2061: syntax error: identifier 'vector'
答案 0 :(得分:5)
尝试使用std :: vector。另外,请确保
#include <vector>
答案 1 :(得分:4)
可能您忘记在命名空间中包含vector和/或导入std::vector
。
确保您拥有:
#include <vector>
然后添加:
using std::vector;
或只是使用:
bar foo(std::vector<odp> ftw);
答案 2 :(得分:1)
你有:
#include <vector>
和
你的代码中有 using namespace std;
吗?
<vector>
定义了std::vector
类,因此您需要将其包含在文件中的某个位置。
因为您正在使用vector
,所以您需要通过{{}指示编译器您要导入整个std
命名空间(可能这不是您想要做的事情) 1}}
否则,vector应定义为using namespace std;
答案 3 :(得分:0)
尝试std::vector<odp>
或using std;
答案 4 :(得分:0)
这段代码本身没有bar
,vector
或odp
的定义。至于为什么你没有收到关于bar
定义的错误,我只能假设你已经脱离了上下文。
我假设它应该将foo
定义为一个函数,vector
命名一个模板,并且它应该定义一个名为ftw
的参数,但在声明中的任何内容都是实际上并没有被定义需要先前声明,以便编译器知道所有其他标识符的含义。
例如,如果您按如下方式定义新类型,则会获得一个将编译的代码段:
struct bar {};
struct odp {};
template<class T> struct vector {};
bar foo(vector<odp> ftw);