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

标签 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();
}

}

最佳答案

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

关于c++ - 如何按姓氏排序并打印新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56721895/

相关文章:

javascript - 为什么 "this"在javascript中的forEach中引用Window?

php - 多维数组放入ini文件中

c++ - 以高分辨率渲染 QChartView

javascript - 根据多个数组输入过滤数组

c++ - 错误 LNK2019 和 LNK 1120

c# - 对类实例而不是 float 进行排序时 Array.Sort() 性能下降

c++ - 最大重叠事件数的持续时间

ios - Swift:按排序描述符对数组进行排序

C++ 入门第 5 版 : The Word Transformation Program

c++ - SFINAE 模板错误