C++14 - error: invalid types 'int[int]' for array subscript v[x].push_back(y) in vector while implementing graph

C++14 - error: invalid types 'int[int]' for array subscript v[x].push_back(y) in vector while implementing graph

当我通过向量在 c++14 中实现图形数据结构时,我多次遇到这个问题,我搜索了很多但它帮不了我,因为它给了我关于数组的搜索结果,虽然我想要向量的解决方案.请帮我解决这个错误。

我在 -> 下面定义的位置中出错,

for(ll i=0;i<m;i++)
{
    cin>>x>>y;
 ->   v[x].push_back(y);
 ->   v[y].push_back(x);
}


#include<bits/stdc++.h>
using namespace std;
#define ll int
vector<ll> v[300005];
bool vis[300005];
vector<ll> vv[300005];
void dfs(int s,int p);
int main()
{

    ll n,m,u,v;
    cin>>n>>u>>v;
    ll x,y;
    m=n-1;
    for(ll i=0;i<m;i++)
    {
        cin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }

    for(ll i=1;i<=n;i++)
    {
        memset(vis,0,vis[0]*n);
        dfs(i,i);
    }

    ll ans=0;
    ll o=(n*(n-1))/2;
    ll p=0;bool fu=0,fv=0;
    for(ll i=0;i<n;i++)
    {
        p=0;fu=0;fv=0;
        for(ll j=0;j<n;j++)
        {
            if(fu && vv[i][j]==v){
                fv=1;break;
            }
            if(vv[i][j]==u) fu=1;
            if(fu) p++;
        }
        ans+=o-(n-p);
    }
    cout<<ans;    
    return 0;
}
void dfs(int s,int p)
{
    vis[s]=1;vv[p].push_back(s);
    for(ll i=0;i<v[s].size();i++)
    {
        if(vis[v[s][i]]==0) //Very IMP - vis[v[s][i]]
            dfs(v[s][i],p);
    }
}

我收到一个错误:

29:12:error: invalid types 'int[int]' for array subscript v[x].push_back(y); 30:12: error: invalid types 'int[int]' for array subscript v[y].push_back(x);

但我期望结果是正确的,因为我跟踪它并且在我的代码中找不到任何错误。请给出解决方案。

你声明了两个v类型的变量;一个是 int 类型的内部 main,第二个是 vector 类型的外部 main。 for 循环中的代码引用了 int 类型的 v。要么更改两个变量中任一个的名称,要么使用作用域解析运算符 :: 来访问全局变量。

for(ll i=0;i<m;i++)
    {
        cin>>x>>y;
        ::v[x].push_back(y);
        ::v[y].push_back(x);
    }