按字符数组(name)(c++)对结构进行排序



我有一个结构,它看起来像这样:

struct employee
{
char name[21], surname[21];
unsigned int salary;
}employees[20];

我的问题是,我该如何根据字段"对结构数组进行排序;name";,按字母顺序排列。

我见过人们使用sort()qsort(),但我不知道如何制作那些排序算法通常必须制作的compare()

只需使用lambda表达式作为示例

#include <iterator>
#include <algorithm>
#include <cstring>
//...
std::sort( std::begin( employees ), std::end( employees ),
[]( const auto &em1, const auto &em2 )
{
return strcmp( em1.name, em2.name ) < 0;
} );

与其在结构中使用字符数组作为数据成员,不如使用类型为std::string的对象。

相关内容

  • 没有找到相关文章

最新更新