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

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++;
    
        }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?