【发布时间】:2019-02-08 02:59:39
【问题描述】:
我试图在标准的 52 张牌组中找到 5 张牌的所有可能组合。我想我已经差不多了,但我被困在一个特定的 if 语句上。我试图弄清楚一个数组是否已经在一个向量中,如果不是我添加它
if (std::find(combos.begin(), combos.end(), combo) != combos.end()){
std::cout << combos.size() << endl;
continue;
}
std::cout << combos.size() << endl;
combos.push_back(combo);
combos 是 std::vector<std::array<card, 5>>,combo 是 std::array<card, 5>。我用 g++ 得到以下错误
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/algorithm:677:71: error:
invalid operands to binary expression ('const card' and 'const card')
bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
card 是一个看起来像这样的结构
struct card {
Suit suit;
int rank;
};
我只是不知道该怎么做。感谢您的任何想法
【问题讨论】:
-
这看起来不是生成所有组合的合理方式。