我一直在使用C#一段時間,而回到C++是一件令人頭疼的事情。我試圖從C++中將我的一些練習與C++一起獲得,但是我發現了一些阻力,我很樂意接受你的幫助。如何在不暴露容器的情況下公開迭代器?
我想揭露迭代器像這樣的類:
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> :: iterator?我希望對剛剛取決於迭代器,而不是實現容器...
同樣看到這個[問題](http://stackoverflow.com/questions/127009/returning-an-any-kind-of-input-iterator-instead-of-a-vectoriterator-or-a -listit) – 2008-10-01 12:11:40