c ++ list,没有'value_type'的可行转换

时间:2013-10-24 21:53:48

标签: c++

我在c ++中使用list

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

编译时我得到了这个错误(在最后一行):

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

我该如何解决这个问题?

由于

1 个答案:

答案 0 :(得分:3)

foo.back()会返回一个引用(即Foo &),但您尝试将其指定给指针。

要使其正常工作,您可以改为分配参考:

Foo &ret = foo.back();

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

Foo *ret = &foo.back();