繁体   English   中英

错误:分配给&#39;_List_iterator <unsigned int,unsigned int &,unsigned int *> 来自“ int”

[英]Error: assignment to '_List_iterator<unsigned int,unsigned int &,unsigned int *>' from 'int'

我正在尝试实现一个将存储相关索引的列表。 但是,标题中提到的for (index_itr = (list_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);
        }
    }
}

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

使用std::advance设置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)
{
    ...
}

暂无
暂无

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

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