Göstermek için, STL std::vector
'u dahili olarak kullanmaktan daha özel bir kapsayıcı var. std::vector<char*>::iterator
my_container::iterator
'a yazdıysam, yineleyicinin kaldırılması bir char*
döndürecektir. Ancak, özel kapsayıcımın dahili içeriğini gizlemesi gerekir, yani bir char
döndürmesi için bir dereferencing istiyorum.Bir STL kapsayıcısını özel bir yineleyicide sarmanın en iyi yolu nedir?
Bu nasıl başarılabilir?
class my_container {
public:
typedef std::vector<char*> vector;
private:
vector vec_;
};
GÜNCELLEME
:char*
bir örnektir. Bir C dizgisi anlamına gelmez; Örnek, bir
int
ile daha açık olacaktır.
Ayrıca, daha standart/güncel bir yaklaşım gibi göründüğünden std::forward_iterator_tag
ve std::iterator
kullanmak istiyorum.
Kendi yineleyici, birini uygulamak gerekebilir o iki düzeyde (sizin KQUEUE operatör için 'Char gerçek yineleyici *' ve 'char') üzerinde dolaşır. –
'char' nereden gelir, vektör içindeki her bir alt dizgeyi yinelemek mi yoksa yalnızca iki kez kaldırmayı mı kastediyorsunuz? – Barry