c++ - 将结构成员传递给函数

标签 c++ structure

我最近开始用 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; } );

关于c++ - 将结构成员传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40146198/

相关文章:

c++ - 如何获取传入参数的函数名?

c++ - 如何将枚举类用作一组标志?

c - 是否可以使用 for 循环索引访问结构元素?

c - 为什么结构定义有内部链接?

c - 开关环和外壳

c++ - 如何初始化 vector 的 vector 结构?

c++ - 为什么预处理器用 Borland C++ 识别枚举值而不用 Visual C++?

c++ - SDL GUI 库?

c - 在链表的 "struct name *next"内添加 "struct name"的目的是什么?我的意思是我实际上无法处理到底发生了什么

C++ 令人困惑的宏