如何将矢量与引用对象一起使用

How to use vectors with reference objects

本文关键字:对象 一起 引用      更新时间:2023-10-16
addWidget(const Widget& nWidget){
Widgets.push_back(nWidget);

我正在尝试通过 ref 将对象从 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 *>>

我在这里错过了什么?

根据错误消息,Widgets似乎是一个std::vector<Widget *>。 如果是这种情况,那么您只需将指针指向nWidget即可使代码工作:

Widgets.push_back(&nWidget);

以及通过将Widgets更改为std::vector<Widget const *>,或将参数更改为Widget &(删除const( - 获取指向Widget const &的指针会导致Widget const *,因此您会得到一个错误,即您正在丢弃常量限定符。