Geri gelen eski değeri döndürdüğünüzde, artırma sonrası artırmayı kullanırsınız.
Daha az incelikli olan şey, ön artırmanın gerçekten hiç yavaşlamadığı ve daha hızlı olabileceğinden ve art arda kullanıldığında eski bir değerin getirilmemesi ve geçici olmama nedeniyle daha hızlı olabileceğidir.
Standart konteynerlerden silerken C++ cinsinden arttırma işleminin kullanılması için gerçek bir senaryo. Örneğin: derleyici optimizasyon cevaben
set<int> ctr;
ctr.insert(1);
ctr.insert(10);
ctr.insert(12);
ctr.insert(15);
set<int>::iterator it = set.begin();
// Post-increment so the value returned to erase is that of the previous
// iteration (i.e. begin()), yet the iterator stays valid due to the local
// iterator being incremented prior to the erase call
ctr.erase(it++);
// Still valid iterator can be used.
cout << "Value: " << *it << "\n";
, bu doğrudur ama ben o kadar kesin olarak başarmak istediğiniz şeyi olabildiğince aktarmaya hep önemli olduğunu düşünüyorum. X ++ 'dan döndürülen değere ihtiyacınız yoksa, o zaman sormayın. Ayrıca, artırım türünüz basit bir tür değilse, her zaman aynı optimizasyonu alacağınızdan emin değilim. Sadece düz gösterici olmayan yineleyicileri düşünün. Bu gibi durumlarda, kilometreniz optimizasyon açısından farklılık gösterebilir. Kısacası, artırma-sonrası operatörün iadesine (yani eski değere) ihtiyacınız olmadıkça, her zaman önceden artırın.
Bu gibi bir sürü soru kopyası: http://stackoverflow.com/questions/24886/ http://stackoverflow.com/questions/467322/ http://stackoverflow.com/questions/1907140 gerçek örnekler için soruyorum olarak/http://stackoverflow.com/questions/484462/ http://stackoverflow.com/questions/467322/ http://stackoverflow.com/questions/24853/ –
Bu bir kopya değil . Lütfen aşağıdaki RC cevabına bakınız. –
Devamı: http://stackoverflow.com/questions/561588/what-is-more-efficient-i-or-i http://stackoverflow.com/questions/24901/ http://stackoverflow.com/questions/ 53455/http://stackoverflow.com/questions/1116735/i-less-efficient-than-i-how-to-show-this http://stackoverflow.com/questions/3072421/difference-between-i-and -i http://stackoverflow.com/questions/2315705/what-is-the-difference-between-ii-in-for-loop-java –