【问题标题】:CPP reference to pointer in std::list [duplicate]CPP 对 std::list 中指针的引用 [重复]
【发布时间】:2017-09-02 17:01:21
【问题描述】:

以下代码不想编译:

#include <list>

int main()
{
  std::list<int *&> l;

  return 0;
}

它是一个 *& 而不仅仅是一个 *。 为什么 ?哎呀,为什么这不起作用?我试图在互联网上寻找答案,但没有办法得到相关的东西。你能帮忙吗?

祝你有美好的一天!

【问题讨论】:

  • 您希望通过指针引用列表完成什么?
  • 这个我已经看过了,不是同一个类型。这里我有一个 *&
  • 我希望通过引用指针来节省一些内存,它不是我程序中的 int,它是一个对象。
  • 好吧,我有一些令人震惊的消息要告诉你:引用将占用与指针完全相同的内存量。那是因为引用只是变相的指针。
  • 不是别名?

标签: c++ pointers reference stl compilation


【解决方案1】:

容器类型不允许使用引用。但是你可以使用 std::reference_wrapper 代替。

std::list<std::reference_wrapper<int>> l;

或者你可以使用指向指针的指针

 std::list<int**> l;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 2021-02-24
    • 2011-03-18
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多