STL 中++iter和iter++的区别

本文探讨了在STL中使用前置递增(++it)与后置递增(it++)遍历容器的区别。前置递增返回引用,而后置递增返回临时对象,导致效率差异。通常推荐使用前置递增进行遍历。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于两种方式来说: 
for(iterator it = begin(); it != end(); ++it) 

return it->second; 


for(iterator it = begin(); it != end(); it++) 

return it->second; 

每一次返回的结果是否相同??
提问者:  lemonbox -  试用期 一级
最佳答案
两 种方式iterator遍历的次数是相同的,但在STL中效率不同,前++--返回引用,后++--返回一个临时对象,因为iterator是类模板,使 用it++这种形式要返回一个无用的临时对象,而it++是函数重载,所以编译器无法对其进行优化,所以每遍历一个元素,你就创建并销毁了一个无用的临时 对象。 

不信的话你可以去看看C++的标准库,还有符合标准C++的教材,除了特殊需要和对内置类型外,基本都是使用++it来进行元素遍历的,不管是源代码还是教材中都是如此。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值