首页 > 解决方案 > 用对象 C++ 处的指针对向量进行排序

问题描述

如果有人可以提供帮助,我将不胜感激。我如何对这个向量进行排序:

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));
    }

标签: c++sortingpointers

解决方案


如果您不显示更多代码,很难为您提供帮助,但我会查看std::sort()的文档,因为您可以创建自定义运算符来对向量进行排序。


推荐阅读