将结构成员传递给函数

时间:2016-10-20 05:33:34

标签: c++ structure

我最近开始用c ++编写代码,现在我正在处理结构......这就是我的问题

这是我的基本结构。

struct myStruct
{
    string A;
    int B;
} myStruct[100];

我想将' myStruct'(对于结构数组中的所有元素)中的字符串传递给排序函数(我使用内置排序函数)。我该怎么做?我希望所有的字符串排序...... 我已尽力解释我的问题。我希望你能得到它并帮助我..

1 个答案:

答案 0 :(得分:3)

如果我理解正确,并且您希望根据每个结构中的字符串A对数组进行排序,则需要通知std::sort如何比较结构。

一种方法是为自定义类型添加operator<

bool operator< (myStruct const& lhs, myStruct const& rhs) {
  return lhs.A < rhs.A;
}

另一种方法是传递std::sort比较函数对象:

std::sort( std::begin(myArray), std::end(myArray),
           [](myStruct const& lhs, myStruct const& rhs)
           { return lhs.A < rhs.A; } );