小编beg*_*ner的帖子

对象集的排序不正确

当我打印整个集合时,结果是未排序的并且它包含一个副本.该对象Person有姓氏,姓氏和出生年份(所有3个都是字符串).我首先按出生年份排序,然后按姓氏,然后按姓氏排序.本身没有相同的人(但即使是这样,也应该在插入时将其删除set).

更具体一点,我创建了一组这样的人:

std::set <Person> greatUncles; 
Run Code Online (Sandbox Code Playgroud)

并插入它们像这样:

greatUncles.insert(Person("bla", "bla", "1900"));
Run Code Online (Sandbox Code Playgroud)

这是课堂上必不可少的东西Person:

class Person {
public:
  //...

  Person(std::string s, std::string f, std::string y)
    :surname(s), familyname(f), yearOfBirth(y)
  {
  }

  //...

  std::string getSurname() const {
    return surname;
  }

  std::string getFamilyname() const {
    return familyname;
  }

  std::string getYearOfBirth() const {
    return yearOfBirth;
  }

private:
  std::string surname;
  std::string familyname;
  std::string yearOfBirth;
};

//to print the set, overload the '<<' operator
std::ostream &operator<<(std::ostream &o, const Person &person) {
  o << person.getSurname() …
Run Code Online (Sandbox Code Playgroud)

c++ overloading object set c++11

0
推荐指数
1
解决办法
70
查看次数

标签 统计

c++ ×1

c++11 ×1

object ×1

overloading ×1

set ×1