【发布时间】:2015-10-08 05:43:53
【问题描述】:
在编写此代码以对数组结构进行排序时,我遇到了几个编译器错误。谁能告诉我我的代码犯了什么错误?这些是编译器中显示的错误,所有错误都来自
std::sort(player.begin(), player.end(), &player);
1.error C2780: 'void std::sort(_RanIt,_RanIt,_Pr)' : 需要 3 个参数 - 提供 1 个
2.error C2780: 'void std::sort(_RanIt,_RanIt)' : 需要 2 个参数 - 提供 1 个
3.error C2228: '.begin' 的左边必须有类/结构/联合
4.error C2228: '.end' 的左边必须有类/结构/联合
5.error C2275: 'player' : 非法使用这种类型作为表达式
6.IntelliSense:类型名称不允许
我的代码如下。
struct player
{
char name[31];
int num_attempt;
time_t time_elapsed;
bool operator ()(const player & lhs, const player & rhs)
{return lhs.num_attempt < rhs.num_attempt;
return lhs.time_elapsed <rhs.time_elapsed;}
}player_data[5]
std::sort(player.begin(), player.end(), &player);
【问题讨论】:
-
player.begin(), player.end(), &player没有任何意义,player是一个类型,而不是一个对象。请提供MCVE。 -
两个问题: player 是数组类型的名称,而不是数组。您可能打算使用 player_data,但要使其发挥作用,请看这里:stackoverflow.com/questions/14595285/…