Question: QUESTION 3 Graph Data Structure cpp #include #include #include #include #include #include class ClubHub { private: std::unordered _ map > studentClubs; std::unordered _ map >
QUESTION
Graph Data Structure
cpp
#include
#include
#include
#include
#include
#include
class ClubHub
private:
std::unorderedmap studentClubs;
std::unorderedmap clubMembers;
public:
void addStudentconst std::string& studentID
studentClubsstudentID std::unorderedset;
void createClubconst std::string& clubName
clubMembersclubName std::unorderedset;
void addStudentToClubconst std::string& studentID, const std::string& clubName
studentClubsstudentIDinsertclubName;
clubMembersclubNameinsertstudentID;
void removeStudentFromClubconst std::string& studentID, const std::string& clubName
studentClubsstudentIDeraseclubName;
clubMembersclubNameerasestudentID;
std::vector findClubsByStudentconst std::string& studentID const
std::vector clubsstudentClubsatstudentIDbegin studentClubs.atstudentIDend;
return clubs;
std::vector findStudentsByClubconst std::string& clubName const
std::vector studentsclubMembersatclubNamebegin clubMembers.atclubNameend;
return students;
std::vector sortStudentsAlphabetically const
std::vector students;
for const auto& pair : studentClubs
students.pushbackpairfirst;
std::sortstudentsbegin students.end;
return students;
void saveToFileconst std::string& filename const
std::ofstream filefilename;
for const auto& pair : studentClubs
file pair.first :;
for const auto& club : pair.second
file club ;
file
;
file.close;
void loadFromFileconst std::string& filename
std::ifstream filefilename;
std::string line;
while std::getlinefile line
sizet pos line.find:;
std::string studentID line.substr pos;
std::string clubs line.substrpos ;
std::vector clubList;
sizet start end;
while end clubs.find start std::string::npos
clubList.pushbackclubssubstrstart end start;
start end ;
studentClubsstudentID std::unorderedsetclubListbegin clubList.end;
for const auto& club : clubList
clubMembersclubinsertstudentID;
file.close;
;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
