为什么vector.push_backs在这里不起作用,但是vector [i] = s起作用作为注释提及?

问题描述

为什么vector.push_back(s)在这里不起作用,但是vector[i]=s起作用(作为注释提及)?如果我使用push_back函数,则不会打印任何内容。 vec[i]=s可以正常工作,但是为什么push_back不起作用?我希望这两种选择都能很好地运行,即以二维向量打印存储的元素。

#include<iostream>
#include<vector>
#include<utility>
#include<stack>
#include<queue>

using namespace std;

int main()

{

int n;
cin>>n;
vector<vector<pair<int,int>>> vec(n);
for(int i=0;i<n;i++)
{
    int m;
    cin>>m;
    vector<pair<int,int>> s;
    for(int j=0;j<m;j++)
    {
        int x;
        cin>>x;
        s.push_back(make_pair(x,i+1));
    }
    vec.push_back(s);//vec[i]=s works here :-(
}

for(int i=0;i<n;i++)
    for(int j=0;j<vec[i].size();j++)
        cout<<vec[i][j].first<<" ";
        

return 0;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)