2017-12-06 10 views
-2
#include<bits/stdc++.h> 
using namespace std; 

void addEdge(vector<int> &adj[],int a,int b) 
{ 
adj[a].push_back(b); 
} 

int main() 
{ 
vector<int> adj[5]; 
addEdge(adj,0,2); 
} 

여기에서 '토큰'앞에 '[오류가 발생했습니다.'] '라는 오류가 나타납니다. 누군가 코드를 잘못 읽었습니까?함수 매개 변수에서 벡터 배열에 대한 참조를 사용하는 중 오류가 발생하는 이유는 무엇입니까?

+2

'& adj []'에 대한 확신이 있습니까? –

+0

예 그것에 대해 확신합니다 – invince

+1

그러면이 확장을 제공하는 컴파일러 공급 업체에 문의하는 것이 좋습니다. 코드가 유효한 ISO C++가 아닙니다. – StoryTeller

답변

0

배열에 대한 참조가 아니어야합니다. 배열은 포인터가 될 수 있기 때문에 괜찮습니다.

#include<bits/stdc++.h> 
using namespace std; 

void addEdge(vector<int> adj[],int a,int b) 
{ 
adj[a].push_back(b); 
} 

int main() 
{ 
vector<int> adj[5]; 
addEdge(adj,0,2); 
}