&#39; struct std :: pair <int,int =“”>&#39;没有名为&#39; push_back&#39;

时间:2016-03-26 19:34:56

标签: c++ c++11 vector struct std-pair

我制作了一对向量,并希望使用make pair初始化这些对的值,但是我得到了这个错误:

  

&#39; struct std :: pair&#39;没有名为&#39; push_back&#39;

的成员

这是我的代码:

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));
    }
}

2 个答案:

答案 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];