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

  • Kindness

    Kindness

    23 Ocak 2006
  • Shanice Caruthers

    Shanice Caru

    27 EKİM 2011
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008