やばい 2019-01-31 21:06 采纳率: 0%
浏览 894
已采纳

C++ 问题 list iterator not dereferencable

大佬们 我这哪里错了呀

#include<iostream>
#include<list>

using namespace std;
int intersection(list<int>L, list<int>P, int a[]);
int cou = 0;
int a[10];

int main()
{
    list<int>L;
    list<int>P;
    L.push_back(1);
    L.push_back(3);
    L.push_back(4);
    L.push_back(6);

    P.push_back(1);
    P.push_back(2);
    P.push_back(3);
    P.push_back(4);
    P.push_back(5);
    P.push_back(6);
    P.push_back(7);
    intersection(L, P,a);
    for(int j=0;j<cou;j++)
    {
        cout << a[j] << endl;

    }
    getchar();
}
int intersection(list<int>L,list<int>P,int a[ ])
{
    int i = 0;


    for (list<int>::iterator itrl = L.begin();;++itrl)
    {
        for (list<int>::iterator itrp = P.begin();*itrp<=*itrl; ++itrp)
        {if(*itrl=*itrp)
        {
            a[i] = *itrl;
            i++;
            cou++;

        }
        }
    }
    return cou;
}
  • 写回答

1条回答 默认 最新

  • 星尘如我 2019-01-31 23:02
    关注
    for (list<int>::iterator itrl = L.begin();;++itrl)//这句没有终止条件改为for (list<int>::iterator itrl = L.begin();itrl !=L.end();++itrl)
    {
        for (list<int>::iterator itrp = P.begin();*itrp<=*itrl; ++itrp)
        {
                if(*itrl=*itrp)//这里是赋值,恒为true,不是条件判断,要加个=号
        {
            a[i] = *itrl;
            i++;
            cou++;
    
        }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大