gpt4 book ai didi

c++ - 设置比较器类型预期错误

转载 作者:行者123 更新时间:2023-11-28 08:25:59 25 4
gpt4 key购买 nike

抱歉,如果这是一个愚蠢的问题。我有一组整数,我想使用函数对象对其进行排序。但是,当我尝试编译以下代码时,出现错误“'_Pr' 的模板参数无效,预期类型”。


class MySortedUser{
vector < user* > & users;
public:
MySortedUser(vector < user* > & _users):users(_users)
{
}
bool operator()(const int& A, const int& B) const
{
return (users[A]->username < users[B]->username);
}
};
void someFunction(vector < user* > & _users)
{
set< int, MySortedUser(_users) > MySet; //error here
}<p></p>

你能告诉我我做错了什么吗?

最佳答案

MySortedUser(_users) 是一个表达式(它创建一个 MySortedUser 对象)。该对象在运行时构造。模板需要在编译时实例化

您需要为 std::set 提供类型作为模板参数,并将构造的比较器作为构造函数参数:

std::set<int, MySortedUser> MySet(MySortedUser(_users));

关于c++ - 设置比较器类型预期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4066304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com