for() 中的 ++i 和i++ 有没有区别?

来源:百度知道 编辑:UC知道 时间:2024/05/09 20:56:53
for (M = Mi.begin(); M!=Mi.end(); ++M) 和 for (M = Mi.begin(); M!=Mi.end(); M++) 有没有区别?

这是STL里面的迭代器么,区别是很大的。
代码实现完全不同。
根据 ++M 和 M++ 的语义。
M++比++M多了一个保存原值的步骤。
M++的效率更加的低下,消耗的资源更加的多。
所以推荐使用 ++M。

如果只是int型的自增,编译器会做出优化处理,最终产生的代码将是一样的。所以++i和i++在for里面同效。

假设M=0
for (M = Mi.begin(); M!=Mi.end(); ++M) 这里M是=1来判断.

for (M = Mi.begin(); M!=Mi.end(); M++)这里M是=0来判断的.

在for循环中一点区别都没有,你可以放心的写.这两种写法的结果是一样的

只有 本物粽子 的说法比较让人信服一点。

肯定有区别的了
i++是对变量i操作之后在自加
++i是在操作之前就自加

在for中没有区别,在其他地方就有区别,区别就是楼上所说的。