0
上記のコードでは、memset呼び出し時にG ++でエラーが発生しています(error: expected constructor, destructor, or type conversion before '(' token
)。"エラー:予期しないコンストラクタ、デストラクタ、または型変換の前に '(memset呼び出しの位置に'トークン ')
#include<iostream>
#include<stdlib.h>
#include<utility>
#include<algorithm>
#include<list>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
int visited[1000];
memset(visited,0,sizeof(visited));
^ //This is where the error points to.
void dfs(vector< list< pair<int,int> > > graph,int u)
{
visited[u]=1;
cout<<u<<" ";
list< pair<int,int> >::iterator x=graph[u].begin();
for(;x!=graph[u].end();x++)
if(!visited[x->first])
dfs(graph,x->first);
}
int main()
{
int v,e;
cout<<"Vertices,edges?\n";
cin>>v>>e;
vector< list< pair<int,int> > > graph(v+1);
for(int i=1;i<=e;i++)
{
int source,dest,weight;
cin>>source>>dest>>weight;
graph[source].push_back(make_pair(dest,weight));
}
list< pair<int,int> >::iterator p;
int i=1;
while(i<=v)
{
p=graph[i].begin();
for(;p!=graph[i].end();p++)
cout<<i<<" "<<p->first<<" : weight is "<<p->second<<"\n";
i++;
}
dfs(graph,1);cout<<"\n";
return 0;
}
私は練習をコーディング/私のコードを改善するあなたがヒントを提供することができればそれはまた、本当に役立つだろう。ありがとう!
また、「visited」は開始時にはゼロで埋められている(グローバルである)ことを理解してください。私。 'memset'は意味がありません。 – WhozCraig
それをニックにして、wiki'dの答え。 – Bathsheba