如何使用带有引用对象的向量

时间:2014-09-11 16:56:52

标签: c++ vector visual-studio-2013

addWidget(const Widget& nWidget){
Widgets.push_back(nWidget);

我正在尝试将x *中的对象通过引用发送到向量保持,我得到以下错误

    1   IntelliSense: no instance of overloaded function "std::vector<_Ty, _Alloc>::push_back [with _Ty=Widget *, _Alloc=std::allocator<Widget *>]" matches the argument list
        argument types are: (const Widget *)
        object type is: std::vector<Widget *, std::allocator<Widget *>>

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

根据错误消息,Widgets似乎是std::vector<Widget *>。如果是这种情况,那么只需通过指向nWidget

的指针就可以使代码工作
Widgets.push_back(&nWidget);

以及将Widgets更改为std::vector<Widget const *>,或将参数更改为Widget &(删除const) - 将指针指向Widget const & }导致Widget const *,因此您将收到一个错误,即您要丢弃const限定符。