c++ - 如何对具有两个变量的 vector 进行排序?

标签 c++ sorting vector parameters

这可能有点菜鸟问题,但这是我的问题;我有一个具有两个不同 int 值的 Card 类,如下所示。

#pragma once
class Card
{
public:
int value;
int suite;

Card(int v, int s);
~Card(void);

void printCard();
int getScore();
};

现在我想根据 5 张牌的值(value)对它们进行排序。我尝试将它们放入 vector 中,然后使用 std::sort 但我无法让它工作。所以我的问题是最好的方法是什么?

最佳答案

您需要重载 operator< :

bool operator<(const Card& lhs, const Card& rhs){
.... logic here ... 
}

然后使用std::sort 。您可能需要让这位运算符(operator)成为您类(class)的 friend 。或者,您可以在类定义中实现:

class Card {
 ....
 public:
  bool operator<(const Card& other) const {
  .... logic here...
  }
}; // end of class Card

关于c++ - 如何对具有两个变量的 vector 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14961157/

相关文章:

r - 如何生成向量的所有可能组合

c++ - 一个模板专门化多个类

c++ - 什么时候不调用 C++ 构造函数?

python - 如何在按成员变量循环字典时对输出进行排序?

list - 使用流的 SML 惰性排序 int 列表

c++ - 在指向对象的指针 vector 上的 for 循环中的段错误

c++ - 声明与 “Message::save(<error-type>& fol)” 不兼容

c++ - 在 C++ 中省略 return 语句

php - 如何在 PHP 中根据数组元素对该数组进行排序?

c++ - 如何将文件中的团队信息解析并存储到类中?