我有一个简单的类,我使用 std::vector 来包含该类的所有实例。但是,当我这样做时:
std::vector<MyType> v;
MyType m(1, 2, 3);
v.push_back(m);
或者如果我这样做:
v.push_back(new MyType(1, 2, 3);
我收到此错误:
error C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'MyType *' to 'MyType &&'
如果它很重要,这里是我的 MyType 代码:
class MyType
{
public:
int a;
int b;
float c;
MyType(int A, int B, float C)
{
a = A;
b = B;
c = C;
}
};
我不明白出了什么问题。
编辑:我的原始(第一段)代码有效。无论出于何种原因,我都必须重建解决方案,然后编译得很好。