我制作了一对向量,并希望使用make pair初始化这些对的值,但是我得到了这个错误:
' struct std :: pair'没有名为' push_back'
的成员
这是我的代码:
const int maxm=100005;//10^5
vector<pair<int,int> > v(maxm);
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
int x, y;
scanf("%d %d",&x,&y);
v[i].push_back(make_pair(x,y));
}
}
答案 0 :(得分:2)
这是因为v[i]
的类型为std::pair<int, int>
,您应该:
v.push_back(make_pair(x,y));
答案 1 :(得分:2)
vector<pair<int,int> > v(maxm);
这只是一个大小为maxn的向量。你想要的是一组向量,所以你应该做
vector<pair<int,int> > v[maxm];