Özel rastgele erişim toplama sınıfım için bir yineleyiciye ihtiyacım var. Yineleyiciyi std::sort
ile kullanmak istiyorum. Sınırlı bir zaman bütçesine sahip bir C++ newbee olduğum için, her şeyi kendim yazmaktan kaçınmak istiyorum.Neden boost'un counting_iterator yapısı nedir?
Yineleyicim temel olarak basit bir size_t
. Bu nedenle, boost::counting_iterator
'un iyi bir eşleşme olabileceğini düşündüm. Incrementable
'u tamamladığımda, counting_iterator
'un referans türünü const Incrementable&
olarak tanımladığını anlamalıydım.
Hala bir çok C++ tarafından karıştırılmamıza rağmen, bu iteratörün std::sort
ile kullanılmasını engelleyeceğine inanıyorum çünkü const yineleyicileri koleksiyon öğelerini değiştirmek için kullanılamaz.
İşte soru şu: neden boost::counting_iterator
, başvuru türünü const
olarak tanımlar ve daha önemlisi, bunun yerine ne kullanmalıyım?
'boost :: counting_iterator', kapsayıcılara erişmek için kullanılamaz. 0, 1, 2, ... 'doğal sayılar dizisine" erişmek "için yaratılmıştır. Bu yüzden referans tipi bir “const” dir: 2'yi “3” haline getiremezsiniz. –
"Özel rastgele erişim toplama sınıfım için bir yineleyiciye ihtiyacım var." Muhtemelen "Ben bir acemi" ile uyumlu değildir. Neden özel bir koleksiyon dersine ihtiyacın olduğunu sorabilir miyim? –
"Yineleyicim temel olarak sadece basit bir" size_t "anlamıyorum.'size_t' yineleyici kavramının gereksinimlerini karşılamıyor – KABoissonneault