如何按姓氏排序并打印新数组

How to sort by last name and print the new array?

本文关键字:数组 新数组 打印 何按姓 排序      更新时间:2023-10-16

所以基本上,我正在创建一个电话簿,其中包含各种信息,例如姓名,电话号码,地址等。 它是使用类保存的。 我需要一些帮助按姓氏对此数组进行排序,然后打印新列表。

我尝试了各种排序方法。 我不知道排序方法是否有效,或者我只是打印数组而没有对其进行排序。 我创建了字符串 last1 和 last2,因为我在交换行中使用 addressBook[j] 时出现错误。 我还尝试将字符串转换为 ascii 值进行比较。

void sortAddressBookByLastName(addressBookType addressBook[], int 
numOfAddress){
string last1, last2;
for (int i = 0; i < numOfAddress-1; i ++){
    for (int j = 0; j < numOfAddress - i - 1; j ++)
    {
        last1=addressBook[j].getLastName();
        last2=addressBook[j+1].getLastName();
        if (last1 > last2){
            swap(last1,last2);
        }
    }
}
for(int i=0; i < numOfAddress;i++){
    addressBook[i].print();
}
}

您的代码正在交换局部变量last1last2; 它不会更改数组的元素。