Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cpp #67

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Cpp #67

wants to merge 3 commits into from

Conversation

HaiHaB
Copy link

@HaiHaB HaiHaB commented Oct 30, 2016

Solution for week 4

Read guest information from input files and print out duplicated information
return (m_email < rhs.m_email);
}

friend std::ostream & operator<<(std::ostream &out, Participant input)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent spacing:

operator< (
operator<<(

Copy link
Member

@vietlq vietlq Oct 30, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you treat this function as a friend, you don't need to keep its implementation inside the class. Recommended idiom for larger projects:

class A
{
  int data;
public:
  void print(std::ostream& ostr)
  {
    ostr << "Data: " << data;
  }
};

std::ostream& operator<<(std::ostream& ostr, const A& a)
{
 a.print(ostr);
 return ostr;
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I generally don't recommend having friends in C++ ;)

SortedParticipantList eventB;

// Get file names from command line
GetParticipantListFromFile(argv[1], eventA);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You didn't check if argc == 3


//------------------------------------------------------------------------------

/** Get participant list from input file**/
Copy link
Member

@vietlq vietlq Oct 30, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better way to comment:

/**
 * @brief: Get participant list from input file
 */

//------------------------------------------------------------------------------

/**Parse a line and add it to the participant list**/
void ParseParticipantInformation(const std::string &line, SortedParticipantList
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's recommended to have function names start with lowercase.

Copy link
Member

@vietlq vietlq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff! Almost perfect! Small changes to make.

{

public:
Participant (std::string firstName, std::string lastName, std::string email) :
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inefficient: Use const references! const std::string&

//Ignore the first line as title.
std::getline(inputStream, line);

const std::regex pattern("(\\w+),(\\w++),([A-z0-9._%+-]+@\\w+\\.\\w+)");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this match names like O'Reilly or van Derks? I don't think so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants