繁体   English   中英

从列表 C++ 创建队列

[英]Create Queue from List C++

相当简单的任务,但我有一些错误,我不明白。 任务是创建一个函数,该函数将从列表中返回队列(使用 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

dataconst list<int>& 您应该使用const_reverse_iterator

queue<int> reverse(const list<int>& data) noexcept
{
    queue <int> Queue;
    for (list<int>::const_reverse_iterator i = data.crbegin(); i != data.crend(); i++)
    {
        Queue.push(*i);
    }
    return Queue; 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM