gpt4 book ai didi

c++ - 在 C++ 中对字符串数组进行排序

转载 作者:行者123 更新时间:2023-11-30 05:45:05 26 4
gpt4 key购买 nike

我正在尝试完成以下任务:

按字母顺序列出学生,按姓氏排序。不要更改名称的给定大小写。不要更改输出文件格式。 (名字姓氏)只需按姓氏顺序打印记录,即

安妮·J

马丁·K

托比大号

这种排序必须是真正的字母顺序(而不仅仅是“词典顺序”排序)。

数据是从文件中读入的,并根据该学生注册的类(class)通过虚函数传递。这就是我所拥有的。

for (int i = 1; i < numStudents; i++)
{
if (( list[i] -> getLastname() ) < ( list[i - 1] -> getLastname() ))
{
Student *temp = list[i - 1];
ist[i - 1] = list[i];
list[i] = temp;
}
}

我已经为此工作了一段时间,我担心我做错了。任何提示/指示表示赞赏!

最佳答案

我假设你有一个像这样的结构:

struct Student
{
std::string m_LastName;
std::string m_FirstName;
};

现在您需要确保可以处理两个人具有相同姓氏的情况。在这种情况下,您需要查看名字。

bool NameCompare(const Student &name1, const Student &name2)
{
if(name1.m_LastName == name2.m_LastName) {
return name1.m_FirstName < name2.m_FirstName;
}

return name1.m_LastName < name2.m_LastName;

然后在你的 Student 列表中调用 sort

std::list<Student> student_list;
// add some Student to the list
student_list.sort(NameCompare);

关于c++ - 在 C++ 中对字符串数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29504233/

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