SORU
20 Ocak 2010, ÇARŞAMBA


(Nasıl) numaralama?bir öğeleri sayıyorum

Bu soru gibi bir şey vardı aklımda, geldi

enum Folders {FA, FB, FC};

ve her klasör için kap dizisi oluşturmak istedim:

ContainerClass*m_containers[3];
....
m_containers[FA] = ...; // etc.

(Harita kullanımı çok daha şık kullanmak için: std::map<Folders, ContainerClass*> m_containers;)

Eğer sabit kod istiyorum eğer dizi boyutu, orada kaç tane Klasör var olduğunu anlamanın bir yolu Nedir? ama ilk soruma geri dönersek: (İzin listesinde *8 örneğin* son kalemi olan güvenmeden bir şey, eğer yanlışım yoksa.) ContainerClass*m_containers[FC 1] gibi

CEVAP
20 Ocak 2010, ÇARŞAMBA


Gerçekten bunu yapmak için iyi bir yol yoktur, genellikle numaralama fazladan bir öğe görürsünüz, yani

enum foobar {foo, bar, baz, quz, FOOBAR_NR_ITEMS};

O zaman bunu yapabilirsiniz:

int fuz[FOOBAR_NR_ITEMS];

Hala çok iyi değil.

Ama tabii ki bir sıralama öğelerin sadece numarasını güvenli, örneğin belirli değil farkındasın değil mi?

enum foobar {foo, bar = 5, baz, quz = 20};

öğe sayısı 4, ama numaralandırma değerleri tamsayı değerler dizisi dizin aralık dışında yol olacaktır. Dizi indeksleme için numaralandırma değerleri kullanarak güvenli değil, diğer seçenekleri göz önünde bulundurmalısınız.

istenen, Özel Giriş daha. sopa gibi Düzenle:

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • cdgotx

    cdgotx

    8 Kasım 2011
  • El SalvaLobo

    El SalvaLobo

    10 Temmuz 2006
  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009