I'm new to C/C++ and pointers are troubling me. Here when I try to implement DFS, I see that my graph size is always 0. Can someone pls help me understand where to use the pointers.
#include<iostream>
#include<vector>
#include<map>
using namespace std;
void dfs_recursive(map<int, vector<int>> graph, bool visited[], int source){
visited[source]=true;
cout<<source<<" "<<endl;
cout<<graph.size();
for(int i=0;i<graph[source].size();i++){
cout<<"i: "<<i<<endl;
if(visited[graph[source][i]]==false)
dfs_recursive(graph, visited, graph[source][i]);
}
}
void addEdge(map<int, vector<int>> graph, int source, int dest){
graph[source].push_back(dest);
graph[dest].push_back(source);
}
int main(){
int v=4;
map<int, vector<int>> graph;
bool visited[v]={false};
addEdge(graph, 0, 1);
addEdge(graph, 0, 4);
addEdge(graph, 1, 2);
addEdge(graph, 1, 3);
addEdge(graph, 1, 4);
addEdge(graph, 2, 3);
addEdge(graph, 3, 4);
dfs_recursive(graph, visited, 2);
}