forward_list未定义+=符号,而改用advance()函数改变迭代器

由于forward_list没有定义`+=`运算符,所以在删除和复制元素时需要使用`advance()`函数来改变迭代器。练习9.31探讨了如何修改程序以适应list和forward_list,强调在这些容器中,删除操作后迭代器、引用和指针依然有效,而vector则不同。解决方案涉及利用`advance()`函数来正确地遍历和操作元素。
摘要由CSDN通过智能技术生成

练习9.31:316页中删除偶数值元素并复制奇数值元素的程序不能用于listforward_list。为什么?修改程序,使之也能用于这些类型。


条件:

    在listforward_list容器中,添加/删除元素之后,引用,迭代器,指针均还有效。

    对于vector,指向被删元素之前元素的迭代器、引用和指针仍有效。

    当我们删除元素时,尾后迭代器总是会失效.


advance()介绍:

    http://www.cplusplus.com/reference/iterator/advance/?kw=advance


Other's Code:

int main()
{
    list<int> lis={0,1,2,3,4,5,6,7};
    forward_list<int> flt = {11,22,33,44,55,66,77,88,99,0};
    for(list<int>::iterat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值