He estado usando C# por un tiempo, y volver a C++ es un dolor de cabeza. Estoy tratando de llevar algunas de mis prácticas de C# a C++, pero estoy encontrando resistencia y me gustaría aceptar su ayuda.¿Cómo puedo exponer iteradores sin exponer el contenedor utilizado?
me gustaría exponer un iterador para una clase como esta:
template <class T>
class MyContainer
{
public:
// Here is the problem:
// typedef for MyIterator without exposing std::vector publicly?
MyIterator Begin() { return mHiddenContainerImpl.begin(); }
MyIterator End() { return mHiddenContainerImpl.end(); }
private:
std::vector<T> mHiddenContainerImpl;
};
estoy tratando en algo que no es un problema? ¿Debo simplemente escribir typedef std :: vector < T> :: iterator? Estoy esperando en apenas dependiendo del iterador, no el contenedor implementar ...
Véase también esta [pregunta] (http://stackoverflow.com/questions/127009/returning-an-any-kind-of-input-iterator-instead-of-a-vectoriterator-or-a -listit) –