SORU
5 AĞUSTOS 2011, Cuma


Bazlı değişmektedir zaman yineleyici gerek döngüler için

Şu anda, sadece bu temel döngüler arasında değişiyordu yapabilirim:

for (auto& value : values)

Ama bazen bir referans (sebebi ne olursa olsun) yerine değeri için bir yineleyici ihtiyacım var. Tüm vektör karşılaştırma değerleri üzerinden gitmek zorunda kalmadan herhangi bir yöntem var mı?

CEVAP
5 AĞUSTOS 2011, Cuma


Eski for döngü olarak kullanın

for (auto it = values.begin(); it != values.end();    it )
{
       auto & value = *it;
       //...
}

Bu, value var yineleyici it gibi. Kullanmak istediğiniz ne olursa olsun kullanın.


DÜZENLEME:

Bunu tavsiye etmem, ama olsa da eğer dizi tabanlı kullanmak istiyorsanız for loop (EvetSebebi ne olursa olsun:D), sonra bunu yapabilirsiniz:

 auto it = std::begin(values); //std::begin is a free function in C  11
 for (auto& value : values)
 {
     //Use value or it - whatever you need!
     //...
     it  ; //at the end OR make sure you do this in each iteration
 }

Bu yaklaşım value it her zaman uyumlu olduğundan value, verilen arama önler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • LAHWF

    LAHWF

    5 Kasım 2009