Yes, you can create a graph with vertexes of emails and names. But it's important to create only one vertex for same emails, but different vertexes for same names — it's required by problem. Now, lets create edges — you have to connect account name with it's emails.

Now you have to find emails that belongs to some account. Just use BFS/DFS to process entire connectivity component and add them to some list.

It's easy to solve using std::map in C++. Just create map<int, string> to get name of vertex by it's ID and map<string, int> to get ID by it's name. And again, dont forget that same account names must be different vertexes.