1

我在 C++ 中使用列表

std::list<Foo> foo;
foo.push_back(bar);
Foo *ret = foo.back();

编译时出现此错误(在最后一行):

No viable conversion from 'value_type' (aka Foo) to 'Foo *'

我该如何解决这个问题?

谢谢

4

1 回答 1

3

foo.back()将返回一个引用(即Foo &),但您正试图将它分配给一个指针。

为了让它工作,你可以分配给一个参考:

Foo &ret = foo.back();

或者获取返回项目的地址,并将其分配给指针:

Foo *ret = &foo.back();
于 2013-10-24T21:57:03.923 回答