SORU
26 EYLÜL 2011, PAZARTESİ


c 11 foreach sözdizimi ve özel yineleyici

STL kapsayıcı yerine kullanılan bir konteyner için bir yineleyici yazıyorum. Şu anda konteyner c 11 foreach syntax eg ile birçok yerde kullanılıyor STL: for(auto &x: C). Kodu güncellemek için STL konteynırı saran özel bir sınıf kullanmak için gerekli

template< typename Type>
class SomeSortedContainer{
    std::vector<typename Type> m_data; //we wish to iterate over this
    //container implementation code
};    
class SomeSortedContainerIterator{
    //iterator code
};

Nasıl otomatik kod şu şekilde çağrılabilir olduğu çok özel bir konteyner için doğru yineleyici kullanmak olsun?:

SomeSortedContainer C;
for(auto &x : C){
    //do something with x... 
}

Genel olarak otomatik bir sınıf için doğru yineleyici kullanmasını sağlamak için ne gerekiyor?

CEVAP
26 EYLÜL 2011, PAZARTESİ


İki seçeneğiniz var:

  • C.begin() C.end(); gibi adlı üye fonksiyonlar begin end adlı sağlayın
  • aksi takdirde, verdiğiniz ücretsiz işlevleri adlı begin end bulunabilir kullanılarak bağımlı değişken arama, ya da ad std ve çağrılabilir gibi begin(C) end(C).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Metheud

    Metheud

    9 EYLÜL 2006
  • UnboxTechnology

    UnboxTechnol

    20 Ocak 2011
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011

İLGİLİ SORU / CEVAPLAR