存在以下类:
class Actor {
public:
float xpos{0};
float ypos{0};
Actor(float x, float y);
~Actor();
};
在管理类的静态函数中,我想创建这样一个参与者并将其插入到一个集合中:
class ActorManager {
private:
ActorManager();
static std::set<Actor> actors;
public:
static void addActor(float x, float y);
}
定义:
std::set<Actor> ActorManager::actors = std::set<Actor>();
void ActorManager::addActor(float x, float y) {
Actor actor(x, y);
actors.insert(actor); // <--
}
存在标记行 actors.insert
时,编译失败。错误状态:
/usr/lib/c++/v1/__functional_base:56:21: Invalid operands to binary expression ('const Actor' and 'const Actor')
我在这里错过了什么?
最佳答案
你需要重载 operator<
为了将你的类(class)与std::set
一起使用(它需要这个才能对元素进行排序)。
关于c++ - 将对象插入集合失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17056544/