首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:从' int‘分配给'_List_iterator<unsigned int,unsigned int &,unsigned int *>’

错误:从' int‘分配给'_List_iterator<unsigned int,unsigned int &,unsigned int *>’
EN

Stack Overflow用户
提问于 2015-12-28 14:51:26
回答 1查看 57关注 0票数 1

我正在尝试实现一个列表来存储相关的索引。但是,我在标题中提到的for (index_itr = (list_size - numberOfEvents - 1)上有一个错误。我在做什么错误,以及如何纠正?

代码语言:javascript
复制
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);
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-28 14:57:30

index_itr是迭代器,list_size - numberOfEvents - 1是整数。这些是不相容的。

使用std::advance设置std::list的迭代器

代码语言:javascript
复制
#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)
{
    ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34495690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档