所以我试图对存储在向量中的卡片向量进行排序。
向量是std::vector<CUE>
CUE 是一个代表“正在评估的卡片”的类,而里面的卡片是const Card*
. 我需要的是使用我创建的名为compareCards
.
但是,我生成以下错误:
错误 C2784: 'bool std::operator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)' : 无法推断出 'const std::basic_string<_Elem,_Traits,_Alloc> 的模板参数&'来自'提示'
函数声明位于另一个名为 的文件Table.h
中,排序调用位于Table.cpp
. 这整件事都是为了我正在创建的扑克游戏,但是对牌进行排序产生了一个错误,让我停了下来。
如何在成功排序手的同时摆脱此错误?
以下是相关代码:
排序调用:
表.cpp
std::sort(cardvec.begin(), cardvec.end(), compareCards);
函数声明:
表.h
bool compareCards(const Card* c1, const Card* c2)
{
return c1->GetPip() < c2->GetPip();
}
提示.h
#pragma once
#include <vector>
#include <iostream>
#include "card.h"
struct CUE
{
CUE(void);
~CUE(void);
CUE(const std::vector<const Card*>& c) : _cue(c){}
std::vector<const Card*> _cue;
};