How to create addEdge function?

Solution for How to create addEdge function?
is Given Below:

I am trying to create an addEdge function for a list of train stations and their stops. I have the beginning but am not sure where to go from there. Within the addEdge function I have to search to see if the train station (key) is already in the adjacency list and add it to the list if not. Here is what I have so far along with my comments:

#pragma once

#include <list>
#include <map>
#include <string>
#include <algorithm>
#include <iostream>
#include <vector>
#include <utility>
#include <fstream>
#include <iterator>

using std::ifstream;
using std::cerr;
using std::endl;
using std::list;
using std::map;
using std::string;
using std::getline;
using std::stoi;
using std::vector;
using std::find;
using std::cout;

// Edge info
struct SodorRoute
    string origin;
    string destination;
    string railway;
    unsigned int distance;

// An adjacency-list based graph
class SodorNetwork
    // Don't need constructor, vector is intially properly empty
    // I am stuck here at this function  
    virtual void addEdge(const string& from, const string& to, const string& railway, unsigned int distance)
        // - Check to see if each rail station already in adjanceny list; add if not
        // - Add the edge information (a SodorRoute instance) to the list for the connection in the correct places
        // Maybe use std::map function to check for key in list?