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

  • dcigs

    dcigs

    9 EYLÜL 2006
  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • psidot

    psidot

    2 Kasım 2006