您所在位置: 网站首页 / 文档列表 / C/C++资料 / 文档详情
c++标准类库.doc 立即下载
上传人:yy****24 上传时间:2024-09-04 格式:DOC 页数:19 大小:55KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

c++标准类库.doc

c++标准类库.doc

预览

免费试读已结束,剩余 9 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C++STL中erase函数的用法求助~~悬赏分:20-解决时间:2009-5-1018:43请大家来看一下这个erase函数到底怎么用这个程序编译倒是能通过可运行时会显示错误“嘭”一声弹出个对话框DebugAssertionFailed!我觉得肯定是erase函数用法不对可是找不到错误在哪儿请大家指导一下了~~~对了程序功能是删除vector对象中的偶数和list对象中的奇数#include<iostream>#include<vector>#include<list>usingnamespacestd;intmain(){intia[10]={2,3,4,5,6,7,8,9,10,11};vector<int>ivec(ia,ia+10);//定义一个vector对象ivecvector<int>::iteratoriter=ivec.begin();list<int>lvec(ia,ia+10);//定义一个list对象lveclist<int>::iteratorlter=lvec.begin();while(iter!=ivec.end()&&lter!=lvec.end()){if(*iter%2==0)ivec.erase(iter);if(*lter%2!=0)lvec.erase(lter);++iter;++lter;}for(iter=ivec.begin();iter!=ivec.end();++iter)cout<<*iter<<"";cout<<endl;for(lter=lvec.begin();lter!=lvec.end();++lter)cout<<*lter<<"";cout<<endl;system("PAUSE");return0;}提问者:HYPERLINK"http://passport.baidu.com/?business&aid=6&un=%D0%D9%D1%C0%C0%FB%C3%FC%C3%FB%B7%A8"\l"2"\t"_blank"匈牙利命名法-HYPERLINK"http://www.baidu.com/search/zhidao_help.html"\l"如何选择头衔"\t"_blank"二级最佳答案对于vector一般不要用erase(),因为很多情况下他要和<algorithm>中的remove()一块用!erase()的使用会使迭代器失效如果删除的不是最后面的元素的话。你的程序中if(*iter%2==0)ivec.erase(iter);可以换成:(记着加头文件<algorithm>)if(*iter%2==0)ivec.erase(remove(ivec.begin(),ivec.end(),*iter),ivec.end())但如果你用if(*iter%2!=0)ivec.erase(remove(ivec.begin(),ivec.end(),*iter),ivec.end())输出结果则包含11,结果错误!不知道你为什么数组,向量,链表都用,为了和你一致,我也只能改成这样:#include<iostream>#include<vector>#include<list>#include<algorithm>#include<functional>#include<iterator>usingnamespacestd;intmain(){vector<int>ivec;list<int>ilis;intvec[]={2,3,4,5,6,7,8,9,10,11};remove_copy_if(vec,vec+10,back_inserter(ivec),bind2nd(modulus<int>(),2));remove_copy_if(vec,vec+10,back_inserter(ilis),not1(bind2nd(modulus<int>(),2)));for(vector<int>::const_iteratoriter=ivec.begin();iter!=ivec.end();++iter)cout<<*iter<<'\t';cout<<endl;for(list<int>::const_iteratorliter=ilis.begin();liter!=ilis.end();++liter)cout<<*liter<<'\t';cout<<endl;}最好的做法是:#include<iostream>#include<vector>#include<list>#inc
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

c++标准类库

文档大小:55KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用