Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:分配给'_列表迭代器<;无符号整数,无符号整数&;,无符号整数*>';从';int';_C++_List_Logging_Stl_Iterator - Fatal编程技术网

C++ 错误:分配给'_列表迭代器<;无符号整数,无符号整数&;,无符号整数*>';从';int';

C++ 错误:分配给'_列表迭代器<;无符号整数,无符号整数&;,无符号整数*>';从';int';,c++,list,logging,stl,iterator,C++,List,Logging,Stl,Iterator,我正在尝试实现一个存储相关索引的列表。 但是,我在标题中提到的(index\u itr=(list\u size-numberOfEvents-1)中得到了一个错误。我犯了什么错误,以及如何纠正它 void logPrintEntry(UINT32 index, UINT32 portID, UINT16 numberOfEvents) { LOG_ENTRY log; list <UINT32> list_telnet_indices; log = (pLO

我正在尝试实现一个存储相关索引的列表。 但是,我在标题中提到的(index\u itr=(list\u size-numberOfEvents-1)中得到了一个错误。我犯了什么错误,以及如何纠正它

void logPrintEntry(UINT32 index, UINT32 portID, UINT16 numberOfEvents)
{
    LOG_ENTRY log;
    list <UINT32> list_telnet_indices;
    log = (pLOG_ENTRY) &(Data.Log.log[index]);
    list <UINT32> ::iterator index_itr;
    UINT16 list_size = list_telnet_indices.size();
    if( list_size <= numberOfEvents )
    {
        // print all logs
        for ( index_itr = list_telnet_indices.begin();
            index_itr != list_telnet_indices.end(); ++index_itr )
        {
            printDataOnly(log, *index_itr, portID);
        }
    }
    else
    {
        // print only the last relevant entries
        for (index_itr = (list_size - numberOfEvents  - 1);     //error: assignment to '_List_iterator<unsigned int,unsigned int &,unsigned int *>' from 'int'
        index_itr != list_telnet_indices.end(); ++index_itr)
        {
            printDataOnly(log, *index_itr, portID);
        }
    }
}
void logPrintEntry(UINT32索引、UINT32端口、UINT16 numberOfEvents)
{
日志输入日志;
列出telnet索引;
log=(pLOG_条目)和(Data.log.log[index]);
列表::迭代器索引\u itr;
UINT16 list_size=list_telnet_index.size();

如果(list_size
index_itr
是一个迭代器,
list_size-numberOfEvents-1
是一个整数。这些是不兼容的

用于设置
std::list

#include <iterator>     // std::advance

index_itr = list_telnet_indices.begin();
std::advance(index_itr, list_size - numberOfEvents - 1);
for (; index_itr != list_telnet_indices.end(); ++index_itr)
{
    ...
}
#包括//std::advance
index_itr=list_telnet_index.begin();
std::advance(索引itr,列表大小-事件数-1);
对于(;index_itr!=list_telnet_index.end();++index_itr)
{
...
}

我已经自由地合并了我们的两个答案。你给出了一个合适的解决方案,我解释了错误。我认为这个答案会得到更多的关注。