我有这个函数order,它返回vector<Node*>
vector<Node*> order(vector<string> nodes, vector<pair<string, string>> dependencies) {
Graph graph = buildGraph(nodes, dependencies);
vector<Node*> order = buildOrder(graph.getNodes());
return order;
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
vector<Node*> order2 = order(nodes, deps);
Run Code Online (Sandbox Code Playgroud)
但是,编译器会出现此错误:
error: type 'std::__1::vector<Node *, std::__1::allocator<Node *> >' does not provide a call operator
vector<Node*> order2 = order(nodes, deps);
^~~~~
1 error generated.
Run Code Online (Sandbox Code Playgroud)
出了什么问题?'std::__1::vector<Node *, std::__1::allocator<Node *> >'似乎暗示有一个vector<Node*, <Node*>>或某个事情正在发生,但我似乎无法弄清楚这一点.
如果没有发布更完整的代码,有点难以辨别,但请考虑以下事项:
int order(int j, int k)
{
return 3;
}
int main(int argc, char *argv[])
{
char order;
// order(2, 3);
}
Run Code Online (Sandbox Code Playgroud)
这段代码很好.但是,没有评论
// order(2, 3);
Run Code Online (Sandbox Code Playgroud)
导致它失败,因为在内main,order是一个角色,而不是一个功能.从错误消息中,您可能会遇到类似的问题.
| 归档时间: |
|
| 查看次数: |
20528 次 |
| 最近记录: |