添加元素到矢量对矢量

时间:2017-02-24 18:46:44

标签: c++11 vector

#include <iostream>
#include <vector>
using namespace std;
#define endl "\n"
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);   
    int t;
    cin>>t;
    vector<pair<int,vector<int>>>v;
    v.resize(t+1);
    for(int i=0;i<t;i++)
    {
        v[i].first=i+1;
    }
    int x=t; 
    while(t--)
    {
        int m,n;
        cin>>m>>n;
        v[m-1].second.push_back(n);
        v[n-1].second.push_back(m);
    }
    for(int i=0;i<x;i++)
    {
        cout<<v[i].first<<endl;
        auto rt=v[i].second.begin();
        while(rt!=v[i].second.end())
        {
            cout<<*rt;
        }
        cout<<endl;
    }
    return 0;
}
  1. 我故意定义了一对向量的向量来存储邻接列表,只是为了理解向量内对的概念,反之亦然。
  2. 我知道我可以选择更简单的vectorarr [n];方式,但正如我之前提到的,我想了解别的东西。
  3. 在while循环中,我尝试在邻接列表中添加顶点m,n。
  4. 最后,我试图打印最终的邻接列表,但是我的概念出了问题,因为它不能正常工作。

1 个答案:

答案 0 :(得分:2)

你忘了增加迭代器。