C++ C++;具有唯一\u ptr的向量中没有重载函数错误的实例

C++ C++;具有唯一\u ptr的向量中没有重载函数错误的实例,c++,unique-ptr,C++,Unique Ptr,为什么我会看到此错误?您需要将唯一的\u ptr传输(移动)到向量槽中,而不是推原始指针 与此相反: no instance of overloaded function "std::vector<_Tp, _Alloc>::push_back [with _Tp=std::unique_ptr<COR, std::default_delete<COR>>, _Alloc=std::allocator<std::unique_ptr<CO

为什么我会看到此错误?

您需要将唯一的\u ptr传输(移动)到向量槽中,而不是推原始指针

与此相反:

no instance of overloaded function "std::vector<_Tp, _Alloc>::push_back [with _Tp=std::unique_ptr<COR, std::default_delete<COR>>, _Alloc=std::allocator<std::unique_ptr<COR, std::default_delete<COR>>>]" matches the argument list -- argument types are: (COR *) -- object type is: std::vector<std::unique_ptr<COR, std::default_delete<COR>>, std::allocator<std::unique_ptr<COR, std::default_delete<COR>>>>
这:

此外,此行看起来可疑,并生成关于tmp2未初始化的编译器警告:

    auto ptr = new COR{ tmp1, tmp2 };
    v.emplace_back(ptr);
你可能是说:

    cin >> tmp1, tmp2;
将所有这些放在一起,并将指针创建与emplace调用内联

    cin >> tmp1 >> tmp2;
for(inti=0,tmp1,tmp2;i>tmp1>>tmp2;
v、 后侵位(新COR{tmp1,tmp2});
}
您需要将唯一的\u ptr转移(移动)到向量槽中,而不是推原始指针

与此相反:

no instance of overloaded function "std::vector<_Tp, _Alloc>::push_back [with _Tp=std::unique_ptr<COR, std::default_delete<COR>>, _Alloc=std::allocator<std::unique_ptr<COR, std::default_delete<COR>>>]" matches the argument list -- argument types are: (COR *) -- object type is: std::vector<std::unique_ptr<COR, std::default_delete<COR>>, std::allocator<std::unique_ptr<COR, std::default_delete<COR>>>>
这:

此外,此行看起来可疑,并生成关于tmp2未初始化的编译器警告:

    auto ptr = new COR{ tmp1, tmp2 };
    v.emplace_back(ptr);
你可能是说:

    cin >> tmp1, tmp2;
将所有这些放在一起,并将指针创建与emplace调用内联

    cin >> tmp1 >> tmp2;
for(inti=0,tmp1,tmp2;i>tmp1>>tmp2;
v、 后侵位(新COR{tmp1,tmp2});
}

< /代码>避免C++中的字体缺陷。它会产生比它更多的问题。我应该用<代码>结构> cor >代码>作为类型关键字吗?是的,这就是你所需要的。避免C++中的字体错误。它会产生比它所能解决的问题更多的问题。我应该只使用
struct\u cor
作为type关键字吗?是的,这就是你所需要的。还有很长的路要走。。谢谢你的善意解释。还有一个拼写错误还有很长的路要走。。谢谢你的善意解释。还有一个拼写错误修复