gpt4 book ai didi

c++ - 多组对象

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

我有 multiset < Class1 > myset ;所以我创建了一个新对象:Class1* c1 = new Class1();我期待能够 myset.insert(c1)myset.insert(new Class1());但它们都不起作用。

class Class1{
int time;
public:
CLass1(int t) : time(t) {}
bool operator<(Class1 &c2) {return time < c2.time;}
}

插入对象与插入整数有何不同?我能够插入整数。

最佳答案

在您的定义中,myset持有 Class1对象,同时 c1是指向 Class1 的指针目的。这就是类型问题。

要么你使用myset保存指向对象的指针 -- multiset<Class1 *> myset , 或者将新创建的对象复制到 myset -- myset.insert(*c1); delete c1; .请注意,容器要求对象必须是可复制和可分配的,并且应该通过实现 operator< 进行比较。 .

关于c++ - 多组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10966191/

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