【发布时间】:2021-02-21 15:47:26
【问题描述】:
相当简单的任务,但我有一些错误,我不明白。任务是创建一个函数,该函数将从列表返回队列(使用 STL)
代码:
#include <iostream>
#include <list>
#include <queue>
using namespace std;
queue<int> reverse(const list<int>& data) noexcept {
queue <int> Queue;
for (list<int>::reverse_iterator i = data.rbegin(); i != data.rend(); i++) {
Queue.push(*i);
}
return Queue;
}
错误:
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include\xutility(1746,1): error C2664: 'std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>>::_List_iterator(const std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>> &)': cannot convert argument 1 from '_BidIt' to 'std::_List_iterator<std::_List_val<std::_List_simple_types<_Ty>>> &&'
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include\xutility(1746,96): message: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
【问题讨论】: