基本上,我正在创建一个包含姓名、电话号码、地址等各种信息的电话簿。它是使用一个类保存的。我需要一些帮助按姓氏对这个数组进行排序,然后打印新列表。
我尝试过各种排序方法。我不知道排序方法是否有效,或者我是否只是在未排序的情况下打印数组。我创建了字符串 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();
}
}
最佳答案
您的代码正在交换局部变量 last1
和 last2
;它不会改变数组的元素。
关于c++ - 如何按姓氏排序并打印新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721895/