C ++问题。关于容器和类的实例

时间:2011-05-12 20:41:41

标签: c++ memory pointers stl containers

A* a = new A(x,y);
set<A> aset;
aSet.insert(a);

我这样做了。出了错误。我该如何解决?

谢谢!!!

2 个答案:

答案 0 :(得分:7)

aset是一组A,而不是指向A的指针。所以

set<A*> aset;

aset.insert(*a);

但不要认为后者太有意义了。

答案 1 :(得分:3)

您正在尝试将A的指针插入到您的集合中,但该集合被声明为直接使用A

您必须更改您的设置以存储指针:

A* a = new A(x,y);
set<A*> aset;
aSet.insert(a); 

或创建实例,而不是指向实例的指针:

A a = A(x,y);
set<A> aset;
aSet.insert(a);