SORU
27 AĞUSTOS 2010, Cuma


Nasıl düzgün özel kullanımına ve const_iterators uygulamak için?

Kendisi için iterator const_iterator sınıflar yazmak istiyorum özel bir kapsayıcı bir Dersim var.

Bunu hiç yapmadım ve uygun bir "Nasıl Yapılır" bulmak için başarısız oldum. Kurallar yineleyici oluşturma konusunda ne, ve ben farkında ne olmalıdır ?

Ayrıca kod çoğaltılması (const_iterator iterator birçok şey; biri diğerini alt yapmalıyım? paylaşan hissediyorum) önlemek istiyorum.

Ayak not: Boost bu kolay bir şey olduğuna eminim ama burada kullanamıyorum, çok aptalca nedenlerle.

CEVAP
27 AĞUSTOS 2010, Cuma


  • Konteyner uyan yineleyici türünü seçin: giriş, çıkış, ileri vb.
  • Standart kütüphaneden Bankası yineleyici sınıfları kullanın. Örneğin, std::iterator random_access_iterator_tagile.Bu temel sınıflar her tür tanımları STL tarafından gerekli tanımlama ve diğer işleri yapmak.
  • Kod tekrarından kaçınmak yineleyici sınıf şablonu bir sınıf olmalı ve parametrize ederek "", "işaretçi türü", "başvuru türü" ya da hepsini (uygulamaya bağlıdır). değer türü Örneğin:

    // iterator class is parametrized by pointer type
    template <typename PointerType> class MyIterator {
        // iterator class definition goes here
    };
    
    typedef MyIterator<int*> iterator_type;
    typedef MyIterator<const int*> const_iterator_type;
    

    iterator_type const_iterator_type tip tanımlar dikkat: sigara içilmez inş ve inş senin kullanımına yönelik türleri vardır.

Ayrıca Bakınız: standard library reference

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • Sorikan

    Sorikan

    3 ŞUBAT 2008