这可能有点菜鸟问题,但这是我的问题;我有一个具有两个不同 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/