21xrx.com
2024-12-22 18:58:57 Sunday
登录
文章检索 我的文章 写文章
C++实现英文名字排序
2023-07-03 06:46:26 深夜i     --     --
C++ sorting English names

英语姓名的排序,通常采用按姓氏排列的方式。在编程中,可以借助字符串的比较和排序函数来实现英文名字的排序。

下面是一个简单的C++程序,用于对英文名字进行排序:


#include <iostream>

#include <algorithm>

#include <string>

#include <vector>

using namespace std;

// 定义一个结构体,用于存储姓名

struct Name

  string first; // 名

  string last; // 姓

;

// 自定义比较函数

bool compareNames(Name a, Name b) {

  if (a.last != b.last)

    return a.last < b.last;

   else

    return a.first < b.first;

  

}

int main() {

  vector<Name> names;

  // 添加数据

  names.push_back("Steven");

  names.push_back("Bill");

  names.push_back("Tim");

  names.push_back("Jeff");

  // 对姓名进行排序

  sort(names.begin(), names.end(), compareNames);

  // 输出排序后的结果

  for (int i = 0; i < names.size(); i++) {

    cout << names[i].last << " " << names[i].first << endl;

  }

  return 0;

}

程序中,定义了一个结构体Name,用于存储姓名。结构体中包含了两个字符串类型的成员变量,分别表示名和姓。

在自定义比较函数compareNames中,通过比较姓氏和名字的大小关系,来确定两个姓名的先后顺序。如果两个姓名的姓氏不同,则按照姓氏的大小排序;如果两个姓名的姓氏相同,则按照名字的大小排序。

在主函数中,通过创建一个vector容器,将姓名数据添加到容器中。然后调用sort函数,对容器中的姓名进行排序。最后,使用循环遍历容器中的姓名,输出排序后的结果。

总之,通过C++编程实现英文名字的排序,可以提高数据处理效率,并方便实现对大量数据的管理。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复