C ++返回值列表?

时间:2017-05-31 21:15:55

标签: c++ list templates

我有一个包含20个数字的列表(列表)。我想读它的背板,并有这个功能来做到这一点:

template<typename T>
T funktioner<T>::swap(list<T> &theList)
{
list<T> li;
auto start = theList.rbegin(), stop = theList.rend();
for (auto it = start; it != stop; ++it)
{
    li.push_back(*it);
}

return li;
}

我在此函数中调用UserInterface中的函数:

template<typename T>
void UserInterface<T>::swap()
{
cout << func.swap(List) << endl;

}

但这不能正常工作,我收到以下错误消息:

error C2440: 'return': cannot convert from 'std::list<T,std::allocator<_Ty>>'to 'int'
error C2440: 'return': cannot convert from 'std::list<T,std::allocator<_Ty>>'to 'double'

为什么呢?这次我不知道我做错了什么。我以为我必须创建一个临时列表并将值推送到那个并返回该列表,但我想我错了,我真的不擅长这个。有人能帮我吗?也许我完全不在床了? :o

1 个答案:

答案 0 :(得分:0)

在您的代码中,您声明返回类型\,但您返回的变量的类型为T。我建议先用具体类型(不带模板)开发代码;之后您可以用占位符交换具体类型,但具体类型可以更好地了解实际发生的情况。 尝试以下代码并将其翻译成模板:

list<T>