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里面同效。