Я использую С# в течение некоторого времени, а возврат к С++ - головная боль. Я пытаюсь получить некоторые из своих практик от С# со мной до С++, но я нахожу некоторое сопротивление, и я был бы рад принять вашу помощь.
Я хотел бы открыть итератор для класса следующим образом:
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;
};
Я пытаюсь что-то, что не проблема? Должен ли я просто typedef std::vector <T> :: итератор? Я надеюсь, что это зависит только от итератора, а не от контейнера-реализации...