VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 797|回复: 7

删除问题!!

[复制链接]

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-8 15:30:02 | 显示全部楼层 |阅读模式
void INput::deleteemployee(){
        string name;
        list<CEmployee*>::iterator it=pEmplist.begin();
        list<CEmployee*>::iterator it_end=pEmplist.end();
        cout<<"请输入你要删除雇员的姓名:";cin>>name;//输出要删除人的姓名
        while(it!=it_end)//顺序查找要删除的人
          { if((**it).EmpolyeeName()==name)
              {pEmplist.erase(it);
               //cout<<"已删除你要删除的雇员信息"<<endl;
                   break;}
                  it++;
          }
        if(it==it_end)//找不到要删除的用户
        cout<<"sorry,there is no one that you want!"<<endl;
}
我郁闷,刚才还可以运行.现在不行了好像是pEmplist.erase(it);有问题
list<CEmployee*>我这里存着用户信息
大师们指点一下!
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-5-29 00:00:02 | 显示全部楼层
直接用list::remove即可
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-29 13:45:01 | 显示全部楼层
怎么用啊!大哥,我不会.我只知道erase   其他的不会......希望大师帮忙一下!!
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-5-29 19:00:01 | 显示全部楼层
        if(it==it_end)//找不到要删除的用户
------------------------------------------------
我觉得这句判断有问题,如果删除的是最后一个呢
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-30 07:30:01 | 显示全部楼层
大哥,改成pEmplist.remove(*it);break;还是在运行时弹出一个窗口  说什么ASSERT值类的
回复

使用道具 举报

1

主题

4

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-5-30 10:00:01 | 显示全部楼层
我试的时候不是删除最后一个  就弹出一个窗口发生错误.........
回复

使用道具 举报

0

主题

49

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-5-30 10:30:01 | 显示全部楼层
c.remove(val)  移除c(list)中所有值为val的元素
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-5-30 20:15:01 | 显示全部楼层
void INput::deleteemployee(){
        string name;
        cout<<"请输入你要删除雇员的姓名:";cin>>name;

        for(list<CEmployee*>::iterator it=pEmplist.begin();it!=pEmplist.end();it++)       
                if((**it).EmpolyeeName()==name)
                        break;

        if(it==it_end)
                cout<<"sorry,there is no one that you want!"<<endl;
        else
                pEmplist.erase(it);

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表