【发布时间】:2020-09-17 07:13:19
【问题描述】:
如果有人能提供帮助,我将不胜感激。 我如何对这个向量进行排序:
vector<Person*>person
按照这个标准:
Surname
我已经尝试过使用 set 但如果有超过 2 个具有相同 Surname 的对象,它会删除对象
字符串变量很多,需要排序
Surname
然后如果姓氏相同,那么我需要对它们进行排序
Name
它还按该指针的十六进制值排序... 编辑: 你问的更多代码:
for (pChild = pRoot->FirstChildElement("Member"); pChild != NULL; pChild = pChild->NextSiblingElement())
{
string Surname = pChild->Attribute("surname");
string Name = pChild->Attribute("name");
string DateOfBirth = pChild->Attribute("dateofbirth");
person.push_back(new Person(Surname, Name, DateOfBirth));
}
【问题讨论】:
-
如果 set 排序正确,您可以使用 multy_set
-
Set 确实对它进行了正确排序,但只有十六进制值,而不是字符串变量...
-
您可以使用比较器。看到这个:stackoverflow.com/questions/1380463/…
-
@NikolaStjepanović 创建一个比较器函数,该函数接受指向对象的指针并根据指向对象的内容返回结果。