gpt4 book ai didi

c++ - 如何在保持先前顺序的同时对已排序的 vector 进行排序

转载 作者:太空狗 更新时间:2023-10-29 23:30:01 24 4
gpt4 key购买 nike

我有以下结构

struct Mydate
{
int UserId;
string name;

};
vector<Mydate> v1;

1:按UserId对vector排序

2:按名称对排序后的vector进行排序,同时保持之前的顺序例如

v1.push_back(make_pair(100, "d"));
v1.push_back(make_pair(100, "q"));
v1.push_back(make_pair(102, "m"));
v1.push_back(make_pair(102, "d"));
v1.push_back(make_pair(100, "c"));

(可以先对 UserId 使用排序函数,但是当我们按名称对它进行排序时,它会覆盖之前的顺序)

我们可以看到以下格式的输出吗:

(100,c) , (100, d), (100, q), (102,d), (102, m) 

有人能帮帮我吗??

最佳答案

您可以定义一个 operator<像这样的成员函数:

operator<(const Mydate & rhs)
{
if (UserId < rhs.UserId)
{
return true;
}
else if (UserId == rhs.UserId)
{
if (name < rhs.name)
{
return true;
}
}
return false;
}

关于c++ - 如何在保持先前顺序的同时对已排序的 vector 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34364695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com