解释 C++ 中的 pair 函数
Explain pair function in C++
我遇到了这段代码
#define pii pair<int, int>
#define pip pair<int, pii>
...
vector< pip > graph;
graph[i] = pip( c, pii(u,v));
当我尝试时
graph[i] = pair<c,pair<u,v>>;
我收到一条错误消息
error: 'c' cannot appear in a constant-expression
error: 'i' cannot appear in a constant-expression
error: 'j' cannot appear in a constant-expression
为什么这两个表达式不相等?
pair
是 类型 ,不是函数。
除了语法不正确之外,您收到此错误的原因是您试图将 c
(一个 运行 时间变量)传递到模板参数中,此处:
graph[i] = pair<c,pair<u,v>>;
大概你想要这样的东西:
graph[i] = pip(c, pii(u,v));
相当于:
graph[i] = pair<int, pair<int, int>>(c, pair<int, int>(u,v));
我遇到了这段代码
#define pii pair<int, int>
#define pip pair<int, pii>
...
vector< pip > graph;
graph[i] = pip( c, pii(u,v));
当我尝试时
graph[i] = pair<c,pair<u,v>>;
我收到一条错误消息
error: 'c' cannot appear in a constant-expression
error: 'i' cannot appear in a constant-expression
error: 'j' cannot appear in a constant-expression
为什么这两个表达式不相等?
pair
是 类型 ,不是函数。
除了语法不正确之外,您收到此错误的原因是您试图将 c
(一个 运行 时间变量)传递到模板参数中,此处:
graph[i] = pair<c,pair<u,v>>;
大概你想要这样的东西:
graph[i] = pip(c, pii(u,v));
相当于:
graph[i] = pair<int, pair<int, int>>(c, pair<int, int>(u,v));