I have a playlist class which contains a vector of song pointers.
class Playlist {
public:
    Playlist();
    Playlist(string);
    vector<Song*> GetSongList() const;
private:
    vector<Song*> songs;
    string name;
};
The function GetSongList() is as follows:
vector<Song*> Playlist::GetSongList() const {
    return songs;
}
In my main method I have a vector of playlist pointers: vector<Playlist*> playlists
I want to remove a song pointer from a specific playlist, but I'm having trouble. This is my current code to remove the indicated song:
Playlist* desiredPlaylist = playlists.at(index);
vector<Song*> temporarySongList = desiredPlaylist->GetSongList();
cout << "Pick a song index number to delete: ";
cin >> index;
temporarySongList.erase(tempSongList.begin() + index);
When I erase the song from the vector and re-output the contents of playlists.at(index).GetSongList() the song is not removed. I think the reason why is that calling GetSongList() does not retrieve the actual song vector, but just returns a copy, so I'm not altering the original vector. How do I directly remove the song from the original?
 
     
     
    