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 fonksiyonlarbegin
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 adstd
ve çağrılabilir gibibegin(C)
end(C)
.
Bunu Paylaş:
razor sözdizimi - foreach döngüsü...
&Quot;özel Durum" kes; Aracı var m...
Benim en Raylar için özel yapılandırma...
Özel öğeler, geçerli bir HTML5....
vs someList dosyalarda grup.() Foreach...