Vector C++;14-错误:无效类型';int[int]';对于数组下标v[x]。在实现图形时将向量中的_向后推(y)

Vector C++;14-错误:无效类型';int[int]';对于数组下标v[x]。在实现图形时将向量中的_向后推(y),vector,graph,implementation,depth-first-search,breadth-first-search,Vector,Graph,Implementation,Depth First Search,Breadth First Search,当我在c++14中通过vector实现图形数据结构时,我多次遇到这个问题,我搜索了很多,但它帮不了我,因为它提供了关于数组的搜索结果,尽管我需要vector的解决方案。请帮我解决这个错误 我在下面的->位置定义中出错 for(ll i=0;i<m;i++) { cin>>x>>y; -> v[x].push_back(y); -> v[y].push_back(x); } #include<bits/stdc++.h>

当我在c++14中通过vector实现图形数据结构时,我多次遇到这个问题,我搜索了很多,但它帮不了我,因为它提供了关于数组的搜索结果,尽管我需要vector的解决方案。请帮我解决这个错误

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

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);
    }
}
用于(ll i=0;i>x>>y;
->v[x]。推回(y);
->v[y]。推回(x);
}
#包括
使用名称空间std;
#定义ll int
向量v[300005];
bool-vis[300005];
向量vv[300005];
无效dfs(整数s,整数p);
int main()
{
ll n,m,u,v;
cin>>n>>u>>v;
llx,y;
m=n-1;
对于(ll i=0;i>x>>y;
v[x]。推回(y);
v[y]。推回(x);
}

for(ll i=1;i您已经声明了两个v类型的变量;一个在main内部,类型为int,另一个在main外部,类型为vector。for循环中的代码引用的是int类型的v。请更改两个变量中任何一个的名称,或者使用scope resolution操作符::访问全局变量

for(ll i=0;i<m;i++)
    {
        cin>>x>>y;
        ::v[x].push_back(y);
        ::v[y].push_back(x);
    }
用于(ll i=0;i>x>>y;
::v[x]。向后推(y);
::v[y]。向后推(x);
}