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

  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • infodirt

    infodirt

    11 Mart 2009
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006