0

私は持ってい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;}
}

オブジェクトの挿入と整数の挿入の違いは何ですか? int を挿入できました。

4

1 に答える 1

2

あなたの定義では、オブジェクトをmyset保持しますが、オブジェクトへのポインターです。それがタイプの問題です。Class1c1Class1

mysetオブジェクトへのポインターを保持するために使用する --multiset<Class1 *> mysetか、新しく作成されたオブジェクトをmyset--にコピーしますmyset.insert(*c1); delete c1;。コンテナは、オブジェクトがコピー可能で割り当て可能である必要があり、実装によって比較可能である必要があることに注意してくださいoperator<

于 2012-06-10T03:49:04.500 に答える