将结构成员传递给函数

Passing structure members to a function

本文关键字:函数 结构 成员      更新时间:2023-10-16

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

这是我的基本结构。

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

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

如果我理解正确,并且您想根据每个结构中的字符串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; } );