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

时间:2019-06-23 07:31:55

标签: c++ arrays sorting

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

我尝试了各种分类方法。我不知道排序方法是否有效,或者我是否只是在打印数组而不进行排序。我创建了字符串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();
}

}

1 个答案:

答案 0 :(得分:1)

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